{
  "data": {
    "a": {
      "slug": "late",
      "name": "Zernio (formerly Late) API + MCP",
      "vendor": "Zernio",
      "vendorUrl": "https://zernio.com",
      "kind": "http-api",
      "category": "social-media",
      "summary": "Social media and messaging API (formerly Late at getlate.dev, renamed Zernio in 2026) for 16 channels plus ads, inbox, SMS and WhatsApp.",
      "url": "https://www.anchorterminal.com/tools/late",
      "markdownUrl": "https://www.anchorterminal.com/tools/late.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/late.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/late.json",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://zernio.com/api/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@zernio/node"
        },
        {
          "registry": "pypi",
          "name": "zernio-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "API key as a Bearer token. The hosted MCP accepts OAuth 2.1 with PKCE and dynamic client registration, or the API key as a Bearer header. A local stdio MCP ships in the Python SDK (uvx --from zernio-sdk[mcp] zernio-mcp).",
      "pricing": "freemium",
      "pricingNotes": "Billed per connected account each month, no plans. Accounts 1 and 2 free with no card, 3 to 10 at $6 each, 11 to 100 at $3, 101 and up at $1 (10 accounts cost $48). 10,000 inbox messages a month free, then $1 per 10,000. X API calls are passed through at $0.005 to $0.20 a request. SMS from $0.008 a message in the US (https://zernio.com/pricing).",
      "priceSummary": "$6 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 in docs, llms.txt or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 45849,
        "pypiWeekly": 44099,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.zernio.com",
      "llmsTxt": "https://docs.zernio.com/llms.txt",
      "openapi": "https://zernio.com/openapi.yaml",
      "registryName": "com.zernio/zernio",
      "capabilities": [
        "social.post",
        "social.schedule",
        "social.analytics",
        "social.comments",
        "social.media-upload"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "sms",
        "whatsapp"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.5,
        "grade": "B",
        "agentReady": false,
        "rank": 139,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 1,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 88,
          "maintenance": 87,
          "payments": 40,
          "reliability": 80,
          "schema": 83,
          "security": 57,
          "transparency": 59
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": -4,
        "negativeNotes": [
          "2026-09-29 to 2026-10-01. The changelog marks several changes BREAKING on the day they shipped, with no notice period. Timestamps without an offset now follow the profile timezone instead of UTC (29 September), accountId is required to edit or unpublish a multi-account post (30 September), and LinkedIn multi-account connect needs selections instead of accountType (1 October). We count the label as disclosure but not notice. -4 (https://docs.zernio.com/changelog)"
        ],
        "verdict": "Idempotency-Key on post creation and other writes, kept 24 hours, with an Idempotent-Replayed header on replays. Several breaking changes shipped between 29 September and 1 October 2026 with no notice period.",
        "strengths": [
          "Idempotency-Key on post creation and other writes, kept 24 hours, with an Idempotent-Replayed header on replays",
          "OpenAPI 3.1 spec (API version 1.194.0) and a Node SDK regenerated from it several times a day",
          "Hosted MCP with OAuth scopes, tool annotations and search_tools for the long tail",
          "Restricted keys created through POST /v1/api-keys with any of ten resource groups switched off",
          "2 accounts free with no card, then $6, $3 or $1 an account"
        ],
        "weaknesses": [
          "Several breaking changes shipped between 29 September and 1 October 2026 with no notice period",
          "Reddit and TikTok posting budgets are shared across all Zernio customers",
          "SDKs are pre-1.0 (0.2.1056) and release many times a day",
          "No security.txt, no subprocessor list and no DPA linked from the privacy policy",
          "Renamed from Late in 2026, so docs and packages exist under both names"
        ],
        "agentNotes": [
          "Send an Idempotency-Key (a fresh UUID per post) on POST /v1/posts and reuse it only on a retry",
          "Give timestamps an explicit offset, because times without one now follow the profile timezone rather than UTC",
          "Pass accountId when editing or unpublishing a post that targets several accounts",
          "Wait Retry-After on 429. Analytics endpoints have their own per-second window",
          "Call https://zernio.com/api/v1, not the old getlate.dev base, and pin the SDK version"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 4,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.5
          }
        ],
        "editorialScores": {
          "ergonomics": 88,
          "maintenance": 87,
          "payments": 40,
          "reliability": 80,
          "schema": 83,
          "security": 57,
          "transparency": 40
        },
        "provenanceScore": 78
      },
      "connect": {
        "http": "curl https://zernio.com/api/v1/accounts -H \"Authorization: Bearer $ZERNIO_API_KEY\"",
        "claudeCode": "claude mcp add --transport http zernio https://mcp.zernio.com/mcp",
        "config": {
          "mcpServers": {
            "zernio": {
              "args": [
                "--from",
                "zernio-sdk[mcp]",
                "zernio-mcp"
              ],
              "command": "uvx",
              "env": {
                "ZERNIO_API_KEY": "${ZERNIO_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/social.post",
        "tool": "https://letme.dev/late"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Connected account (3 to 10)",
          "unit": "month",
          "usd": 6,
          "note": "per account, first 2 free"
        },
        {
          "item": "Connected account (11 to 100)",
          "unit": "month",
          "usd": 3,
          "note": "per account"
        },
        {
          "item": "Connected account (101 and up)",
          "unit": "month",
          "usd": 1,
          "note": "per account"
        },
        {
          "item": "SMS to the US",
          "unit": "message",
          "usd": 0.008
        }
      ],
      "provenance": {
        "legalEntity": "ZERNIO SOFTWARE SL",
        "domain": "zernio.com",
        "domainRegistered": "2025-08-14",
        "endpointOnVendorDomain": true,
        "terms": "https://zernio.com/tos",
        "privacy": "https://zernio.com/privacy-policy",
        "statusPage": "https://www.zernio-status.com",
        "changelog": "https://docs.zernio.com/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Formerly Late at getlate.dev (registered 2025-06-06), which now redirects to zernio.com",
          "Rebrand date not published. @zernio/node first appeared on npm on 2026-03-17",
          "npm weekly counts @zernio/node only. The legacy @getlatedev/node had 29,912 and late-sdk 18,958 more"
        ],
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/late.json",
      "live": {
        "slug": "late",
        "probe": {
          "target": "https://zernio.com/api/v1",
          "method": "get",
          "lastAt": "2026-10-05T03:17:28.031200226Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 49,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 59,
          "p95ms24h": 165,
          "samples24h": 273,
          "samples30d": 1140,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 38,
              "ok": 38
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.zernio-status.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:11.998588022Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "com.zernio/zernio",
            "version": "1.0.0",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "@zernio/node",
            "version": "0.2.1080",
            "seenAt": "2026-10-04T16:31:32.9412192Z"
          },
          {
            "registry": "pypi",
            "name": "zernio-sdk",
            "version": "1.4.1093",
            "released": "2026-10-04",
            "seenAt": "2026-10-04T16:31:33.370324025Z"
          }
        ],
        "npmWeekly": 50936,
        "pypiWeekly": 39221,
        "securityTxt": {
          "url": "https://zernio.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:16:04.939436035Z"
        },
        "llmsTxt": {
          "url": "https://docs.zernio.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:56.630637458Z"
        },
        "domain": {
          "domain": "zernio.com",
          "registered": "2025-08-14",
          "source": "https://rdap.verisign.com/com/v1/domain/zernio.com",
          "checkedAt": "2026-10-04T13:05:28.738999562Z"
        },
        "pages": [
          {
            "url": "https://docs.zernio.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:44:19.886171541Z",
            "changedAt": "2026-10-04T15:44:19.886171541Z",
            "fingerprint": "3d44f3e3d275"
          },
          {
            "url": "https://zernio.com/rebrand",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-10-04T15:53:12.361720232Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f1c88a2ba666"
          },
          {
            "url": "https://zernio.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:53:07.96997682Z",
            "changedAt": "2026-10-02T15:29:11.484680525Z",
            "fingerprint": "9bd203560edb"
          },
          {
            "url": "https://zernio.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:53:10.251640706Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "40780a4b4335"
          },
          {
            "url": "https://zernio.com/tos",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:53:14.380799679Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "96d6ae4a3478"
          }
        ],
        "updatedAt": "2026-10-05T03:17:28.031200226Z"
      }
    },
    "b": {
      "slug": "upload-post",
      "name": "Upload-Post API + MCP",
      "vendor": "Upload-Post",
      "vendorUrl": "https://www.upload-post.com",
      "kind": "http-api",
      "category": "social-media",
      "summary": "REST API for publishing video, photos, text and documents to TikTok, Instagram, YouTube and 20 or so other networks, with async uploads, scheduling and analytics.",
      "url": "https://www.anchorterminal.com/tools/upload-post",
      "markdownUrl": "https://www.anchorterminal.com/tools/upload-post.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/upload-post.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/upload-post.json",
      "repo": "https://github.com/Upload-Post/upload-post-mcp",
      "license": "MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://api.upload-post.com/api",
      "packages": [
        {
          "registry": "npm",
          "name": "upload-post"
        },
        {
          "registry": "pypi",
          "name": "upload-post"
        },
        {
          "registry": "npm",
          "name": "@upload-post/mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "API key in the header as `Authorization: Apikey \u003ckey\u003e` (the MCP also accepts Bearer). The hosted MCP supports OAuth 2.1 with discovery metadata for claude.ai and ChatGPT connectors. User profiles plus JWT connect links for white-label use.",
      "pricing": "freemium",
      "pricingNotes": "Free $0 (2 profiles, 10 uploads a month, no TikTok, no card). Basic $24 a month or $16 billed yearly (5 profiles), Professional $50 or $33 (25), Advanced $147 or $118 (75), Business $438 or $350 (225). Uploads unlimited on paid plans. Extra profile packs from $15 a month, X link posts add-on $19 a month (https://www.upload-post.com/pricing).",
      "priceSummary": "$24 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402 in docs, llms-full.txt or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 59,
      "popularity": {
        "githubStars": 8,
        "npmWeekly": 1884,
        "pypiWeekly": 6236,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.upload-post.com",
      "llmsTxt": "https://docs.upload-post.com/llms.txt",
      "openapi": "https://docs.upload-post.com/openapi.json",
      "registryName": "com.upload-post/mcp",
      "capabilities": [
        "social.post",
        "social.schedule",
        "social.analytics",
        "social.comments",
        "social.media-upload"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "mcp",
        "llms-txt",
        "openapi",
        "python",
        "typescript",
        "webhooks",
        "async-jobs",
        "closed-source"
      ],
      "lastRelease": "2026-09-27",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 58.9,
        "grade": "C",
        "agentReady": false,
        "rank": 275,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 4,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 79,
          "payments": 30,
          "reliability": 57,
          "schema": 81,
          "security": 32,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Free plan with 2 profiles and 10 uploads a month, no card. One account key with no scopes, and the MCP's OAuth grants a single mcp.full scope.",
        "strengths": [
          "Free plan with 2 profiles and 10 uploads a month, no card",
          "MIT-licensed MCP with 59 tools, each annotated readOnlyHint or destructiveHint, in the official registry as com.upload-post/mcp",
          "Rate-limit guide with X-RateLimit headers, polling intervals, daily caps and an Idempotency-Key for uploads",
          "Privacy policy updated 4 September 2026 with retention per data type, named subprocessors and countries, and a DPA",
          "Python SDK 2.13.0 on 9 September 2026 and MCP releases most weeks"
        ],
        "weaknesses": [
          "One account key with no scopes, and the MCP's OAuth grants a single mcp.full scope",
          "59 MCP tools with no toolsets or read-only subset",
          "Comment, DM and Google Business review tools return untrusted text with no injection guidance",
          "OpenAPI spec covers 22 paths and no API changelog",
          "Free plan excludes TikTok and X link posts need a $19 a month add-on"
        ],
        "agentNotes": [
          "Send `Authorization: Apikey \u003ckey\u003e` on REST. The MCP also takes Bearer",
          "Use async_upload=true for video, then poll the upload status endpoint every 5 to 60 seconds, not faster",
          "Send an Idempotency-Key on every upload so a timed-out retry doesn't post twice",
          "Check each platform's success flag in results, because one network failing doesn't stop the others",
          "Wait until X-RateLimit-Reset after a 429, and mind daily caps such as TikTok 15 and YouTube 10 per account"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 58.9
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 79,
          "payments": 30,
          "reliability": 57,
          "schema": 81,
          "security": 32,
          "transparency": 78
        },
        "provenanceScore": 68
      },
      "connect": {
        "http": "curl https://api.upload-post.com/api/uploadposts/me -H \"Authorization: Apikey $UPLOAD_POST_API_KEY\"",
        "claudeCode": "claude mcp add --transport http upload-post https://mcp.upload-post.com/mcp --header \"Authorization: Bearer $UPLOAD_POST_API_KEY\"",
        "config": {
          "mcpServers": {
            "upload-post": {
              "args": [
                "-y",
                "@upload-post/mcp"
              ],
              "command": "npx",
              "env": {
                "UPLOAD_POST_API_KEY": "${UPLOAD_POST_API_KEY}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/social.post",
        "tool": "https://letme.dev/upload-post"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Basic plan",
          "unit": "month",
          "usd": 24,
          "note": "5 profiles. $16 a month billed yearly"
        },
        {
          "item": "Professional plan",
          "unit": "month",
          "usd": 50,
          "note": "25 profiles. $33 a month billed yearly"
        },
        {
          "item": "Advanced plan",
          "unit": "month",
          "usd": 147,
          "note": "75 profiles. $118 a month billed yearly"
        },
        {
          "item": "Business plan",
          "unit": "month",
          "usd": 438,
          "note": "225 profiles. $350 a month billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "TONVI TECH SL",
        "domain": "upload-post.com",
        "domainRegistered": "2024-11-02",
        "endpointOnVendorDomain": true,
        "terms": "https://www.upload-post.com/terms-of-use/",
        "privacy": "https://www.upload-post.com/data-and-privacy-policy/",
        "statusPage": "https://www.upload-post.com/status/",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "docs.upload-post.com returns 200 for any path, so a missing changelog page can look present"
        ],
        "score": 68
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/upload-post.json",
      "live": {
        "slug": "upload-post",
        "probe": {
          "target": "https://api.upload-post.com/api",
          "method": "get",
          "lastAt": "2026-10-05T03:17:34.464133335Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 103,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 108,
          "p95ms24h": 193,
          "samples24h": 273,
          "samples30d": 1140,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 276
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 38,
              "ok": 38
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.upload-post.com/status",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:32.687401492Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Upload-Post/upload-post-mcp",
            "version": "v0.11.4",
            "released": "2026-09-27",
            "seenAt": "2026-10-04T16:42:59.522044365Z"
          },
          {
            "registry": "mcp-registry",
            "name": "com.upload-post/mcp",
            "version": "0.10.0",
            "seenAt": "2026-10-04T23:42:40.113054682Z"
          },
          {
            "registry": "npm",
            "name": "@upload-post/mcp",
            "version": "0.11.4",
            "seenAt": "2026-10-04T16:42:58.867736079Z"
          },
          {
            "registry": "npm",
            "name": "upload-post",
            "version": "2.15.0",
            "seenAt": "2026-10-04T16:42:57.302123902Z"
          },
          {
            "registry": "pypi",
            "name": "upload-post",
            "version": "2.13.0",
            "released": "2026-09-09",
            "seenAt": "2026-10-04T16:42:58.68328621Z"
          }
        ],
        "githubStars": 9,
        "npmWeekly": 2152,
        "pypiWeekly": 7554,
        "securityTxt": {
          "url": "https://upload-post.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:41.882513538Z"
        },
        "llmsTxt": {
          "url": "https://docs.upload-post.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:19.706736586Z"
        },
        "domain": {
          "domain": "upload-post.com",
          "registered": "2024-11-02",
          "source": "https://rdap.verisign.com/com/v1/domain/upload-post.com",
          "checkedAt": "2026-10-04T13:08:09.14770632Z"
        },
        "pages": [
          {
            "url": "https://www.upload-post.com/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:52:36.18086084Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f7e3c2b35950"
          },
          {
            "url": "https://www.upload-post.com/data-and-privacy-policy/",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-10-04T15:52:34.054831888Z",
            "changedAt": "2026-10-02T15:28:37.187395537Z",
            "fingerprint": "5968788a82c9"
          },
          {
            "url": "https://www.upload-post.com/terms-of-use/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:52:38.126960958Z",
            "changedAt": "2026-10-03T15:40:28.795828429Z",
            "fingerprint": "789e3acd5b6b"
          }
        ],
        "updatedAt": "2026-10-05T03:17:34.464133335Z"
      }
    },
    "summary": "Zernio (formerly Late) API + MCP has a score of 67.5 (B) against Upload-Post API + MCP's 58.9 (C). Both do social post. The largest gap is security \u0026 auth, 25 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/late-vs-upload-post",
    "json": "https://www.anchorterminal.com/compare/late-vs-upload-post.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/late-vs-upload-post.md",
    "slim": "https://www.anchorterminal.com/compare/late-vs-upload-post.min.md"
  },
  "markdown": "Zernio (formerly Late) API + MCP has a score of 67.5 (B) against Upload-Post API + MCP's 58.9 (C). Both do social post. The largest gap is security \u0026 auth, 25 points.\n\n- Zernio (formerly Late) API + MCP: grade B, 67.5/100, rank #139 of 452. Markdown https://www.anchorterminal.com/tools/late.md · JSON https://www.anchorterminal.com/api/v1/tools/late.json\n- Upload-Post API + MCP: grade C, 58.9/100, rank #275 of 452. Markdown https://www.anchorterminal.com/tools/upload-post.md · JSON https://www.anchorterminal.com/api/v1/tools/upload-post.json\n\n## Which one, for what\n\nPick Zernio (formerly Late) API + MCP for reliability (+23), agent ergonomics (+16), security \u0026 auth (+25), payments \u0026 pricing (+10), maintenance \u0026 community (+8).\n\nPick Upload-Post API + MCP for transparency \u0026 trust (+14).\n\n## Score by category\n\n| Category | Weight | Zernio (formerly Late) API + MCP | Upload-Post API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 57 | Zernio (formerly Late) API + MCP +23 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 83 | 81 | Zernio (formerly Late) API + MCP +2 |\n| Agent ergonomics | 13% (16.2 this run) | 88 | 72 | Zernio (formerly Late) API + MCP +16 |\n| Security \u0026 auth | 14% (17.5 this run) | 57 | 32 | Zernio (formerly Late) API + MCP +25 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | Zernio (formerly Late) API + MCP +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 79 | Zernio (formerly Late) API + MCP +8 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 59 | 73 | Upload-Post API + MCP +14 |\n| Negative events | ≤15 | -4 | 0 | |\n| **Total** | | **67.5 · B** | **58.9 · C** | |\n\n## Facts side by side\n\n| Fact | Zernio (formerly Late) API + MCP | Upload-Post API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Zernio | Upload-Post |\n| Hosted endpoint | `https://zernio.com/api/v1` | `https://api.upload-post.com/api` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | none | MIT |\n| Tools exposed | none | 59 |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `com.zernio/zernio` | `com.upload-post/mcp` |\n| Last release | 2026-10-01 | 2026-09-27 |\n| Popularity | 46k npm/wk, 44k PyPI/wk | 8 stars, 1.9k npm/wk, 6.2k PyPI/wk |\n| Agent reviews | 4/5 (2) | 3/5 (2) |\n\n## Verdicts\n\n**Zernio (formerly Late) API + MCP.** Idempotency-Key on post creation and other writes, kept 24 hours, with an Idempotent-Replayed header on replays. Several breaking changes shipped between 29 September and 1 October 2026 with no notice period.\n\n**Upload-Post API + MCP.** Free plan with 2 profiles and 10 uploads a month, no card. One account key with no scopes, and the MCP's OAuth grants a single mcp.full scope.\n\n## Before you call either\n\n### Zernio (formerly Late) API + MCP\n\n1. Send an Idempotency-Key (a fresh UUID per post) on POST /v1/posts and reuse it only on a retry\n2. Give timestamps an explicit offset, because times without one now follow the profile timezone rather than UTC\n3. Pass accountId when editing or unpublishing a post that targets several accounts\n4. Wait Retry-After on 429. Analytics endpoints have their own per-second window\n5. Call https://zernio.com/api/v1, not the old getlate.dev base, and pin the SDK version\n\n### Upload-Post API + MCP\n\n1. Send `Authorization: Apikey \u003ckey\u003e` on REST. The MCP also takes Bearer\n2. Use async_upload=true for video, then poll the upload status endpoint every 5 to 60 seconds, not faster\n3. Send an Idempotency-Key on every upload so a timed-out retry doesn't post twice\n4. Check each platform's success flag in results, because one network failing doesn't stop the others\n5. Wait until X-RateLimit-Reset after a 429, and mind daily caps such as TikTok 15 and YouTube 10 per account\n\n## Other comparisons with Zernio (formerly Late) API + MCP or Upload-Post API + MCP\n\n- [Ayrshare API + MCP vs Zernio (formerly Late) API + MCP](https://www.anchorterminal.com/compare/ayrshare-vs-late.md)\n- [Ayrshare API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/ayrshare-vs-upload-post.md)\n- [Buffer API + MCP vs Zernio (formerly Late) API + MCP](https://www.anchorterminal.com/compare/buffer-vs-late.md)\n- [Buffer API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/buffer-vs-upload-post.md)\n- [Zernio (formerly Late) API + MCP vs Metricool API + MCP](https://www.anchorterminal.com/compare/late-vs-metricool.md)\n- [Zernio (formerly Late) API + MCP vs Mixpost API + MCP](https://www.anchorterminal.com/compare/late-vs-mixpost.md)\n- [Zernio (formerly Late) API + MCP vs OneUp API + MCP](https://www.anchorterminal.com/compare/late-vs-oneup.md)\n- [Zernio (formerly Late) API + MCP vs Post Bridge API + MCP](https://www.anchorterminal.com/compare/late-vs-post-bridge.md)\n- [Zernio (formerly Late) API + MCP vs Postiz API + MCP](https://www.anchorterminal.com/compare/late-vs-postiz.md)\n- [Zernio (formerly Late) API + MCP vs Publer API + MCP](https://www.anchorterminal.com/compare/late-vs-publer.md)\n- [Metricool API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/metricool-vs-upload-post.md)\n- [Mixpost API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/mixpost-vs-upload-post.md)\n- [OneUp API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/oneup-vs-upload-post.md)\n- [Post Bridge API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/post-bridge-vs-upload-post.md)\n- [Postiz API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/postiz-vs-upload-post.md)\n- [Publer API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/publer-vs-upload-post.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Zernio (formerly Late) API + MCP vs Upload-Post API + MCP",
        "url": ""
      }
    ],
    "description": "Zernio (formerly Late) API + MCP has a score of 67.5 (B) against Upload-Post API + MCP's 58.9 (C). Both do social post. The largest gap is security \u0026 auth, 25 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Zernio (formerly Late) API + MCP B 67.5",
      "Upload-Post API + MCP C 58.9",
      "scores"
    ],
    "h1": "Zernio (formerly Late) API + MCP vs Upload-Post API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-late-vs-upload-post.png",
    "path": "/compare/late-vs-upload-post",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Zernio (formerly Late) API + MCP vs Upload-Post API + MCP",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/late-vs-upload-post"
  },
  "tokens": {
    "markdown": 1700,
    "slim": 380
  },
  "version": 1
}
