{
  "data": {
    "a": {
      "slug": "apitemplate-io",
      "name": "APITemplate.io",
      "vendor": "Alphacloud Technologies Pte Ltd",
      "vendorUrl": "https://apitemplate.io",
      "kind": "http-api",
      "category": "design-assets",
      "summary": "APITemplate.io generates PDF documents and JPEG or PNG images from reusable templates filled with JSON data, and converts HTML, Markdown or a web page to PDF. Agents call its REST API with an API key.",
      "url": "https://www.anchorterminal.com/tools/apitemplate-io",
      "markdownUrl": "https://www.anchorterminal.com/tools/apitemplate-io.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/apitemplate-io.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/apitemplate-io.json",
      "license": "Proprietary service under APITemplate.io's Terms of Use. The SDK repositories have no licence file, and the Python client's `setup.py` names Apache 2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://rest.apitemplate.io/v2",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Calls send an API key in the `X-API-KEY` header, or as `Authorization: Token \u003ckey\u003e`. A browser signup at app.apitemplate.io creates the key, self-serve, and it can be regenerated under API Integration. Each team has its own key, separate from the personal one. No scopes or read-only keys were found. Direct URL image links carry a per-template `auth` code in the query string, with a quota and an expiry.",
      "pricing": "freemium",
      "pricingNotes": "The free plan gives 50 images or PDFs a month and 3 templates with no card, so an agent's owner can start without a contract. PDF-only plans run from $24 a month for 3,000 PDFs to $179 for 25,000, and image and PDF plans from $35 for 1,500 files to $179 for 20,000, billed monthly. Annual billing is up to 20 per cent less. Overage billing exists only on Enterprise plans by request, with no rate published (checked 2026-10-09).",
      "priceSummary": "$24 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "Monthly subscriptions paid through Stripe. No x402, MPP or L402 in the API description, the docs or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 0,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://apitemplate.io/docs/",
      "openapi": "https://apitemplateio.s3.ap-southeast-1.amazonaws.com/redoc_apiv2/apitemplateiov2_api.yaml",
      "capabilities": [
        "design.templates",
        "design.render",
        "pdf.generate",
        "pdf.convert",
        "pdf.merge"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "openapi",
        "no-card",
        "async-jobs",
        "webhooks",
        "images",
        "pdf",
        "regional-endpoints",
        "status-page",
        "sla"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 46.6,
        "grade": "D",
        "agentReady": false,
        "rank": 916,
        "ranked": true,
        "rankOf": 1084,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 49,
          "maintenance": 11,
          "payments": 30,
          "reliability": 65,
          "schema": 52,
          "security": 53,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": -2,
        "negativeNotes": [
          "2026-10-09. Two vendor documentation pages disagree on regional endpoints. The first-request guide (https://apitemplate.io/docs/getting-started/first-api-request) lists `rest.apitemplate.io` as the US default with `rest-eu` and `rest-sg` hosts. The API reference and REST guide (https://apitemplate.io/docs/integrations/rest-api) list it as the Singapore default with `rest-de` and `rest-us`. The vendor says data is processed and stored in the region of the endpoint, so the conflict affects data residency. We did not test which hostnames resolve. 2 points."
        ],
        "verdict": "A public OpenAPI description covers 12 operations, with rate limits, four regional endpoints and a 99.9 per cent uptime SLA published. Each account or team has one unscoped API key, no changelog or deprecation notices were found, the SDK repositories date from September 2023, and two documentation pages name different regional hostnames.",
        "bestFor": "Owners who need invoices, certificates, reports and social images filled from templates, with HTML, URL and Markdown to PDF on the same key and a choice of storage region.",
        "strengths": [
          "OpenAPI 3.0.0 description of 12 operations is linked from the docs, with request samples in cURL, Python, PHP, Node.js and C# on the main operations",
          "Rate limits are published as 100 requests per 10 seconds per IP address and 100 concurrent synchronous PDF requests per account",
          "Regional endpoints in Singapore, Frankfurt, N. Virginia and Sydney process and store requests and output in the region, per the API reference",
          "The SLA page commits to 99.9 per cent monthly availability for the REST API and dashboard, with service credits of 10 to 50 per cent",
          "Free plan of 50 images or PDFs a month with no card, and output can skip vendor storage with `export_type=file` or `cloud_storage=0`"
        ],
        "weaknesses": [
          "One API key per account or team with no scopes or read-only mode, and `GET /v2/delete-object` deletes a file with a GET request",
          "No changelog, release notes or dated deprecation notices were found, and the terms allow the service to change with or without notice",
          "The five SDK repositories each hold a generated client committed on 17 September 2023, with no tags, no licence file and placeholder install commands",
          "The first-request guide names `rest-eu` and `rest-sg` hostnames and a US default, while the API reference names `rest-de` and `rest-us` and a Singapore default",
          "Errors are documented as one `status` and `message` object with no status codes listed, and no idempotency key exists for generation calls",
          "The terms of use forbid any robot or other automatic device accessing the Site or Service, and bar load or vulnerability testing without agreement. This matters before any probe is run"
        ],
        "agentNotes": [
          "Send the key in the `X-API-KEY` header and pick the regional host first, because requests and output are processed and stored in that region",
          "Call `GET /v2/list-templates` with `with_layer_info=1` before `POST /v2/create-image`, so the `name` values in `overrides` match the template's elements",
          "Set `meta` to your own reference on each generation and check `GET /v2/list-objects` before retrying, since there is no idempotency key",
          "Set `expiration` in minutes (1 to 10080) or `export_type=file` for sensitive output. By default the download URL does not expire",
          "For `async=1` you must pass `webhook_url`. The callback is a GET with the result in the query string, retried three times",
          "On HTTP 429 pause and retry on your own schedule. The docs give no `Retry-After` header or backoff interval"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 46.6
          }
        ],
        "editorialScores": {
          "ergonomics": 49,
          "maintenance": 11,
          "payments": 30,
          "reliability": 65,
          "schema": 52,
          "security": 53,
          "transparency": 58
        },
        "provenanceScore": 59
      },
      "connect": {
        "http": "curl -X POST \"https://rest.apitemplate.io/v2/create-image?template_id=TEMPLATE_ID\" -H \"X-API-KEY: YOUR_API_KEY\" -H \"Content-Type: application/json\" -d '{\"overrides\": [{\"name\": \"title\", \"text\": \"Hello World\"}]}'"
      },
      "letme": {
        "capability": "https://letme.dev/design.templates",
        "tool": "https://letme.dev/apitemplate-io"
      },
      "area": "design-diagrams",
      "unitPrices": [
        {
          "item": "PDF Basic",
          "unit": "month",
          "usd": 24,
          "note": "3,000 PDFs a month, 20 templates. $19 a month billed annually"
        },
        {
          "item": "PDF Standard",
          "unit": "month",
          "usd": 89,
          "note": "12,000 PDFs a month, 180 templates. $69 a month billed annually"
        },
        {
          "item": "PDF Enterprise",
          "unit": "month",
          "usd": 179,
          "note": "25,000 PDFs a month, unlimited templates, own storage. $139 a month billed annually"
        },
        {
          "item": "Starter (image and PDF)",
          "unit": "month",
          "usd": 35,
          "note": "1,500 images or PDFs a month, 15 templates. $29 a month billed annually"
        },
        {
          "item": "Standard (image and PDF)",
          "unit": "month",
          "usd": 89,
          "note": "9,000 images or PDFs a month, 150 templates. $69 a month billed annually"
        },
        {
          "item": "Enterprise (image and PDF)",
          "unit": "month",
          "usd": 179,
          "note": "20,000 images or PDFs a month, unlimited templates, own storage. $139 a month billed annually"
        }
      ],
      "provenance": {
        "legalEntity": "Alphacloud Technologies Pte Ltd",
        "domain": "apitemplate.io",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://apitemplate.io/terms-of-use/",
        "privacy": "https://apitemplate.io/privacy-policy/",
        "statusPage": "https://status.apitemplate.io/",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The terms of use name Alphacloud Technologies Pte Ltd, a Singapore company. The DPA gives Unique Entity Number 201902224G and an address at 50 Lakeside Drive, Singapore 648315.",
          "The terms of use are dated 8 April 2022. They are the customer contract for the service and its APIs, covering subscriptions, fees, content and termination.",
          "The privacy policy is dated 21 January 2024 and covers the websites, the app and the APIs. It holds the sub-processor list and the storage regions.",
          "A Data Processing Agreement with standard contractual clauses is at apitemplate.io/data-processing-agreement/, and an SLA dated 13 February 2020 at apitemplate.io/service-level-agreement/.",
          "The API answers at rest.apitemplate.io and regional hosts under apitemplate.io, per the API reference. We sent no request to an API host.",
          "apitemplate.io/.well-known/security.txt returns 404.",
          "The status page is hosted by UptimeRobot. Its figures load by script from a path its robots.txt disallows.",
          "No changelog or release notes page was found on the site, in the docs or in the SDK repositories.",
          "The domain's registration date was not established. rdap.org answered 404 for apitemplate.io."
        ],
        "score": 59
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/apitemplate-io.json",
      "live": {
        "slug": "apitemplate-io",
        "probe": {
          "target": "https://rest.apitemplate.io/v2",
          "method": "get",
          "lastAt": "2026-10-15T00:41:39.529415511Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 544,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 562,
          "p95ms24h": 666,
          "samples24h": 250,
          "samples30d": 1331,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 8,
              "ok": 8
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.apitemplate.io",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-14T21:44:52.066078189Z"
        },
        "securityTxt": {
          "url": "https://apitemplate.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-14T15:47:11.795071666Z"
        },
        "domain": {
          "domain": "apitemplate.io",
          "checkedAt": "2026-10-11T13:22:04.465655169Z"
        },
        "pages": [
          {
            "url": "https://apitemplate.io/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-14T20:53:53.739974494Z",
            "changedAt": "2026-10-14T20:35:09.205438479Z",
            "fingerprint": "16acfd44dc4d"
          },
          {
            "url": "https://apitemplate.io/terms-of-use/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-14T20:53:55.919417965Z",
            "changedAt": "2026-10-14T20:35:11.465687226Z",
            "fingerprint": "9c709540b579"
          }
        ],
        "updatedAt": "2026-10-15T00:41:39.529415511Z"
      }
    },
    "answer": "APITemplate.io scores 46.6 (D) on agent readiness against PostNitro's 44.5 (E), and leads in 4 of 7 scored categories. PostNitro leads on schema \u0026 documentation and maintenance \u0026 community.",
    "b": {
      "slug": "postnitro",
      "name": "PostNitro",
      "vendor": "PostNitro Inc.",
      "vendorUrl": "https://postnitro.ai",
      "kind": "mcp",
      "category": "design-assets",
      "summary": "PostNitro designs carousels, single-image posts and slide videos from templates and brand kits, then schedules them to six social networks. Agents use a hosted MCP server with 35 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",
      "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": 35,
      "popularity": {
        "githubStars": 2,
        "npmWeekly": 200,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "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-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 44.5,
        "grade": "E",
        "agentReady": false,
        "rank": 945,
        "ranked": true,
        "rankOf": 1084,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 49,
          "maintenance": 65,
          "payments": 20,
          "reliability": 42,
          "schema": 77,
          "security": 30,
          "transparency": 48
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": -2,
        "negativeNotes": [
          "Conflicting training statements on PostNitro's own pages, read 14 October 2026. The privacy policy body (5 October 2023) says the data saved from carousel creation is used to train PostNitro's AI model, while the same page's description and the Claude connector page say content is never used to train AI models. At least one is wrong, and no dated update settles it (-2) (https://postnitro.ai/privacy, https://postnitro.ai/claude)"
        ],
        "verdict": "A hosted MCP server and REST API let an agent turn a topic, article or own slides into a branded carousel, image or slide video and schedule it, with OAuth, numbered rate limits and Markdown docs. No status page, security contact or idempotency key was found, and the privacy policy contradicts the vendor's no-training statement.",
        "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": [
          "OAuth 2.1 with dynamic client registration on the MCP server, so Claude and ChatGPT connect without a stored API key",
          "Rate limits are published per key and endpoint, and 429 responses carry `Retry-After` and `X-RateLimit` headers",
          "OpenAPI 3.1 document, `llms.txt`, `llms-full.txt` and a Markdown version of every page by content negotiation",
          "Per-slide credit prices are public at $0.04 a credit, 1 per imported slide and 2 per AI-written slide",
          "The one-call generate-and-schedule tool returns the `designId` when scheduling fails, so a retry does not spend credits again"
        ],
        "weaknesses": [
          "No status page, incident history, SLA, security.txt or certification was found",
          "35 MCP tools load at once, with no toolsets or read-only subset, and the OAuth flow has one broad `postnitro` scope",
          "The privacy policy says carousel data trains PostNitro's AI model, while the Claude connector page says content is never used for training",
          "No idempotency key on create or schedule calls, and the Embed API has no changelog or deprecation policy",
          "Pages disagree on the API free tier and tool count. One docs index still says 12 MCP tools and four scheduling networks"
        ],
        "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 and wait for `Retry-After` on a 429"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "E",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 44.5
          }
        ],
        "editorialScores": {
          "ergonomics": 49,
          "maintenance": 65,
          "payments": 20,
          "reliability": 42,
          "schema": 77,
          "security": 30,
          "transparency": 33
        },
        "provenanceScore": 63
      },
      "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": "none",
        "checked": "2026-10-14",
        "notes": [
          "The Terms of Service, last updated 20 May 2024, cover the website, applications and APIs. They name no legal entity or governing law. The privacy policy names PostNitro Inc. as controller.",
          "The privacy policy is dated 5 October 2023 and names UserMaven, CrispChat and an unnamed payment processor. No DPA or sub-processor list was found.",
          "No status page was found. status.postnitro.ai did not connect and /status returns 404. The MCP server answers a health check at https://mcp.postnitro.ai/health, reporting version 1.3.0.",
          "The changelog covers the CLI only. No changelog for the Embed API or MCP server was found.",
          "postnitro.ai/.well-known/security.txt and /security.txt return 404.",
          "RDAP gives a registration date of 2023-03-23 for postnitro.ai. The fact sheet says the company was founded in 2023."
        ],
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/postnitro.json",
      "live": {
        "slug": "postnitro",
        "probe": {
          "target": "https://mcp.postnitro.ai/mcp",
          "method": "mcp-initialize",
          "lastAt": "2026-10-15T00:42:00.577153159Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 103,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 102,
          "p95ms24h": 146,
          "samples24h": 34,
          "samples30d": 34,
          "days": [
            {
              "date": "2026-10-14",
              "probes": 26,
              "ok": 26
            },
            {
              "date": "2026-10-15",
              "probes": 8,
              "ok": 8
            }
          ]
        },
        "versions": [
          {
            "registry": "github",
            "name": "postnitro/postnitro-agent",
            "version": "v1.5.0",
            "released": "2026-10-07",
            "seenAt": "2026-10-15T00:15:12.63443761Z"
          },
          {
            "registry": "npm",
            "name": "@postnitro/cli",
            "version": "1.5.0",
            "seenAt": "2026-10-15T00:15:10.434524788Z"
          },
          {
            "registry": "npm",
            "name": "@postnitro/embed",
            "version": "2.0.3",
            "seenAt": "2026-10-15T00:15:11.257477478Z"
          }
        ],
        "githubStars": 2,
        "npmWeekly": 200,
        "mcpTools": {
          "url": "https://mcp.postnitro.ai/mcp",
          "checkedAt": "2026-10-14T22:17:48.649874285Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-10-14T22:17:48.649874285Z"
        },
        "updatedAt": "2026-10-15T00:42:00.577153159Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "MCP server",
        "name": "Kind"
      },
      {
        "a": "Alphacloud Technologies Pte Ltd",
        "b": "PostNitro Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://rest.apitemplate.io/v2",
        "b": "https://mcp.postnitro.ai/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "Streamable HTTP, HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under APITemplate.io's Terms of Use. The SDK repositories have no licence file, and the Python client's `setup.py` names Apache 2.0",
        "b": "Proprietary hosted service under PostNitro's Terms of Service. The CLI, agent skill and agent plugin repositories are MIT",
        "name": "Licence"
      },
      {
        "a": "0",
        "b": "35",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "none",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2024-05-20",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2023-10-05",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "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": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "2 stars, 200 npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "APITemplate.io scores 46.6 (D) on agent readiness against PostNitro's 44.5 (E), and leads in 4 of 7 scored categories. PostNitro leads on schema \u0026 documentation and maintenance \u0026 community.",
        "question": "Which is better for AI agents, APITemplate.io or PostNitro?"
      },
      {
        "answer": "APITemplate.io needs an API key. PostNitro takes an API key or an OAuth sign-in.",
        "question": "Do APITemplate.io and PostNitro need an API key?"
      },
      {
        "answer": "Yes. APITemplate.io has a hosted endpoint at https://rest.apitemplate.io/v2 and PostNitro at https://mcp.postnitro.ai/mcp.",
        "question": "Can an agent call APITemplate.io and PostNitro without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 65 against 42",
          "Security \u0026 auth, 53 against 30",
          "Payments \u0026 pricing, 30 against 20",
          "Transparency \u0026 trust, 59 against 48"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Owners who need invoices, certificates, reports and social images filled from templates, with HTML, URL and Markdown to PDF on the same key and a choice of storage region.",
        "slug": "apitemplate-io",
        "watchFor": "One API key per account or team with no scopes or read-only mode, and `GET /v2/delete-object` deletes a file with a GET request"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 77 against 52",
          "Maintenance \u0026 community, 65 against 11"
        ],
        "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, SLA, security.txt or certification was found"
      }
    ],
    "job": {
      "capability": "design.templates",
      "name": "Design templates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-apitemplate-io.json",
        "title": "Adobe Photoshop API vs APITemplate.io",
        "url": "https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-apitemplate-io"
      },
      {
        "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/apitemplate-io-vs-bannerbear.json",
        "title": "APITemplate.io vs Bannerbear API + MCP",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-bannerbear"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-canva.json",
        "title": "APITemplate.io vs Canva REST APIs + MCP",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-canva"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-creatomate.json",
        "title": "APITemplate.io vs Creatomate",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-creatomate"
      },
      {
        "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-placid.json",
        "title": "APITemplate.io vs Placid API + MCP",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-placid"
      },
      {
        "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/apitemplate-io-vs-templated.json",
        "title": "APITemplate.io vs Templated API + MCP",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-templated"
      },
      {
        "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/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/creatomate-vs-postnitro.json",
        "title": "Creatomate vs PostNitro",
        "url": "https://www.anchorterminal.com/compare/creatomate-vs-postnitro"
      },
      {
        "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/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/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/apitemplate-io-vs-osmo-cli.json",
        "title": "APITemplate.io vs Osmo CLI",
        "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-osmo-cli"
      },
      {
        "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"
      }
    ],
    "scores": [
      {
        "apitemplate-io": 65,
        "by": 23,
        "edge": "apitemplate-io",
        "key": "reliability",
        "name": "Reliability",
        "postnitro": 42,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "apitemplate-io": 52,
        "by": 25,
        "edge": "postnitro",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "postnitro": 77,
        "weight": 13
      },
      {
        "apitemplate-io": 49,
        "by": 0,
        "edge": "",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "postnitro": 49,
        "weight": 13
      },
      {
        "apitemplate-io": 53,
        "by": 23,
        "edge": "apitemplate-io",
        "key": "security",
        "name": "Security \u0026 auth",
        "postnitro": 30,
        "weight": 14
      },
      {
        "apitemplate-io": 30,
        "by": 10,
        "edge": "apitemplate-io",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "postnitro": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "apitemplate-io": 11,
        "by": 54,
        "edge": "postnitro",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "postnitro": 65,
        "weight": 7
      },
      {
        "apitemplate-io": 59,
        "by": 11,
        "edge": "apitemplate-io",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "postnitro": 48,
        "weight": 7
      }
    ],
    "summary": "APITemplate.io scores 46.6 (D) on agent readiness against PostNitro's 44.5 (E), and leads in 4 of 7 scored categories. PostNitro leads on schema \u0026 documentation and maintenance \u0026 community. Both do design templates.",
    "verdicts": {
      "apitemplate-io": "A public OpenAPI description covers 12 operations, with rate limits, four regional endpoints and a 99.9 per cent uptime SLA published. Each account or team has one unscoped API key, no changelog or deprecation notices were found, the SDK repositories date from September 2023, and two documentation pages name different regional hostnames.",
      "postnitro": "A hosted MCP server and REST API let an agent turn a topic, article or own slides into a branded carousel, image or slide video and schedule it, with OAuth, numbered rate limits and Markdown docs. No status page, security contact or idempotency key was found, and the privacy policy contradicts the vendor's no-training statement."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/apitemplate-io-vs-postnitro",
    "json": "https://www.anchorterminal.com/compare/apitemplate-io-vs-postnitro.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/apitemplate-io-vs-postnitro.md",
    "slim": "https://www.anchorterminal.com/compare/apitemplate-io-vs-postnitro.min.md"
  },
  "markdown": "APITemplate.io scores 46.6 (D) on agent readiness against PostNitro's 44.5 (E), and leads in 4 of 7 scored categories. PostNitro leads on schema \u0026 documentation and maintenance \u0026 community. Both do design templates.\n\n- APITemplate.io: grade D, 46.6/100, rank #916 of 1084. Markdown https://www.anchorterminal.com/tools/apitemplate-io.md · JSON https://www.anchorterminal.com/api/v1/tools/apitemplate-io.json\n- PostNitro: grade E, 44.5/100, rank #945 of 1084. Markdown https://www.anchorterminal.com/tools/postnitro.md · JSON https://www.anchorterminal.com/api/v1/tools/postnitro.json\n- Best programmatic image and design asset APIs for AI agents: https://www.anchorterminal.com/best/design-assets/index.md\n- All 55 assets comparisons: https://www.anchorterminal.com/compare/design-assets/index.md\n\n## Which one, for what\n\n### APITemplate.io (D)\n\nGood for: Owners who need invoices, certificates, reports and social images filled from templates, with HTML, URL and Markdown to PDF on the same key and a choice of storage region.\n\nAhead on:\n- Reliability, 65 against 42\n- Security \u0026 auth, 53 against 30\n- Payments \u0026 pricing, 30 against 20\n- Transparency \u0026 trust, 59 against 48\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: One API key per account or team with no scopes or read-only mode, and `GET /v2/delete-object` deletes a file with a GET request\n\n### PostNitro (E)\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 52\n- Maintenance \u0026 community, 65 against 11\n\nWatch for: No status page, incident history, SLA, security.txt or certification was found\n\n\n## Score by category\n\n| Category | Weight | APITemplate.io | PostNitro | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 65 | 42 | APITemplate.io +23 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 52 | 77 | PostNitro +25 |\n| Agent ergonomics | 13% (16.2 this run) | 49 | 49 | even |\n| Security \u0026 auth | 14% (17.5 this run) | 53 | 30 | APITemplate.io +23 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 20 | APITemplate.io +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 11 | 65 | PostNitro +54 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 59 | 48 | APITemplate.io +11 |\n| Negative events | ≤15 | -2 | -2 | |\n| **Total** | | **46.6 · D** | **44.5 · E** | |\n\n## Facts side by side\n\n| Fact | APITemplate.io | PostNitro |\n| --- | --- | --- |\n| Kind | HTTP API | MCP server |\n| Vendor | Alphacloud Technologies Pte Ltd | PostNitro Inc. |\n| Hosted endpoint | `https://rest.apitemplate.io/v2` | `https://mcp.postnitro.ai/mcp` |\n| Transports | HTTP | Streamable HTTP, HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under APITemplate.io's Terms of Use. The SDK repositories have no licence file, and the Python client's `setup.py` names Apache 2.0 | Proprietary hosted service under PostNitro's Terms of Service. The CLI, agent skill and agent plugin repositories are MIT |\n| Tools exposed | 0 | 35 |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | none | 2026-10-07 |\n| Terms last updated | no date given | 2024-05-20 |\n| Privacy policy last updated | no date given | 2023-10-05 |\n| Customer content may train models | not found in the text | yes |\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 | yes | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | none | 2 stars, 200 npm/wk |\n\n## Verdicts\n\n**APITemplate.io.** A public OpenAPI description covers 12 operations, with rate limits, four regional endpoints and a 99.9 per cent uptime SLA published. Each account or team has one unscoped API key, no changelog or deprecation notices were found, the SDK repositories date from September 2023, and two documentation pages name different regional hostnames.\n\n**PostNitro.** A hosted MCP server and REST API let an agent turn a topic, article or own slides into a branded carousel, image or slide video and schedule it, with OAuth, numbered rate limits and Markdown docs. No status page, security contact or idempotency key was found, and the privacy policy contradicts the vendor's no-training statement.\n\n## Before you call either\n\n### APITemplate.io\n\n1. Send the key in the `X-API-KEY` header and pick the regional host first, because requests and output are processed and stored in that region\n2. Call `GET /v2/list-templates` with `with_layer_info=1` before `POST /v2/create-image`, so the `name` values in `overrides` match the template's elements\n3. Set `meta` to your own reference on each generation and check `GET /v2/list-objects` before retrying, since there is no idempotency key\n4. Set `expiration` in minutes (1 to 10080) or `export_type=file` for sensitive output. By default the download URL does not expire\n5. For `async=1` you must pass `webhook_url`. The callback is a GET with the result in the query string, retried three times\n6. On HTTP 429 pause and retry on your own schedule. The docs give no `Retry-After` header or backoff interval\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 and wait for `Retry-After` on a 429\n\n## Questions\n\n### Which is better for AI agents, APITemplate.io or PostNitro?\n\nAPITemplate.io scores 46.6 (D) on agent readiness against PostNitro's 44.5 (E), and leads in 4 of 7 scored categories. PostNitro leads on schema \u0026 documentation and maintenance \u0026 community.\n\n### Do APITemplate.io and PostNitro need an API key?\n\nAPITemplate.io needs an API key. PostNitro takes an API key or an OAuth sign-in.\n\n### Can an agent call APITemplate.io and PostNitro without installing anything?\n\nYes. APITemplate.io has a hosted endpoint at https://rest.apitemplate.io/v2 and PostNitro at https://mcp.postnitro.ai/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/apitemplate-io-vs-postnitro.json, and with the fewest tokens: https://www.anchorterminal.com/compare/apitemplate-io-vs-postnitro.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"apitemplate-io\", \"b\": \"postnitro\"}`. From a terminal: `anchor compare apitemplate-io postnitro`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/apitemplate-io.json and https://www.anchorterminal.com/api/v1/tools/postnitro.json\n\n## Other comparisons with APITemplate.io or PostNitro\n\n- [Adobe Photoshop API vs APITemplate.io](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-apitemplate-io.md)\n- [Adobe Photoshop API vs PostNitro](https://www.anchorterminal.com/compare/adobe-photoshop-api-vs-postnitro.md)\n- [APITemplate.io vs Bannerbear API + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-bannerbear.md)\n- [APITemplate.io vs Canva REST APIs + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-canva.md)\n- [APITemplate.io vs Creatomate](https://www.anchorterminal.com/compare/apitemplate-io-vs-creatomate.md)\n- [APITemplate.io vs Photoroom API](https://www.anchorterminal.com/compare/apitemplate-io-vs-photoroom.md)\n- [APITemplate.io vs Placid API + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-placid.md)\n- [APITemplate.io vs Shotstack](https://www.anchorterminal.com/compare/apitemplate-io-vs-shotstack.md)\n- [APITemplate.io vs Templated API + MCP](https://www.anchorterminal.com/compare/apitemplate-io-vs-templated.md)\n- [Bannerbear API + MCP vs PostNitro](https://www.anchorterminal.com/compare/bannerbear-vs-postnitro.md)\n- [Canva REST APIs + MCP vs PostNitro](https://www.anchorterminal.com/compare/canva-vs-postnitro.md)\n- [Creatomate vs PostNitro](https://www.anchorterminal.com/compare/creatomate-vs-postnitro.md)\n- [Photoroom API vs PostNitro](https://www.anchorterminal.com/compare/photoroom-vs-postnitro.md)\n- [Placid API + MCP vs PostNitro](https://www.anchorterminal.com/compare/placid-vs-postnitro.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- [APITemplate.io vs Osmo CLI](https://www.anchorterminal.com/compare/apitemplate-io-vs-osmo-cli.md)\n- [Osmo CLI vs PostNitro](https://www.anchorterminal.com/compare/osmo-cli-vs-postnitro.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-15",
    "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",
    "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": "APITemplate.io vs PostNitro",
        "url": ""
      }
    ],
    "description": "APITemplate.io scores 46.6 (D) to PostNitro's 44.5 (E) for design templates. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "APITemplate.io D 46.6",
      "PostNitro E 44.5",
      "scores"
    ],
    "h1": "APITemplate.io vs PostNitro",
    "image": "https://www.anchorterminal.com/assets/og/compare-apitemplate-io-vs-postnitro.png",
    "path": "/compare/apitemplate-io-vs-postnitro",
    "published": "2026-10-01",
    "section": "tools",
    "title": "APITemplate.io vs PostNitro for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-14",
    "url": "https://www.anchorterminal.com/compare/apitemplate-io-vs-postnitro"
  },
  "tokens": {
    "markdown": 2450,
    "slim": 730
  },
  "version": 1
}
