{
  "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": "publer",
      "name": "Publer API + MCP",
      "vendor": "Publer",
      "vendorUrl": "https://publer.com",
      "kind": "http-api",
      "category": "social-media",
      "summary": "Scheduler with a REST API and an MCP server that are both limited to the Business and Enterprise plans.",
      "url": "https://www.anchorterminal.com/tools/publer",
      "markdownUrl": "https://www.anchorterminal.com/tools/publer.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/publer.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/publer.json",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://app.publer.com/api/v1",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Scoped API key (workspaces, accounts, posts, media, analytics) sent in the Authorization header as `Bearer-API \u003ckey\u003e`, plus a Publer-Workspace-Id header on most calls. The MCP server uses the same key, either in a generated server URL or in an Authorization header.",
      "pricing": "paid",
      "pricingNotes": "Free plan for 3 accounts but no API or MCP. API and MCP need Business, priced per social account at $7 a month plus $3 per extra member, as returned by the plans page. Professional is $4 per account and has no API. Every 10th account or member is free, and trials run 7 or 14 days. Enterprise by quote (https://publer.com/plans).",
      "priceSummary": "$7 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 or per-call payment in the API docs or plans page (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://publer.com/docs",
      "llmsTxt": "https://publer.com/docs/llms.txt",
      "capabilities": [
        "social.post",
        "social.schedule",
        "social.analytics",
        "social.media-upload"
      ],
      "tags": [
        "hosted",
        "mcp",
        "llms-txt",
        "closed-source",
        "async-jobs",
        "enterprise"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 47.1,
        "grade": "D",
        "agentReady": false,
        "rank": 388,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 8,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 55,
          "maintenance": 41,
          "payments": 15,
          "reliability": 60,
          "schema": 46,
          "security": 41,
          "transparency": 69
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Scoped API keys (workspaces, accounts, posts, media, analytics) with 401 and 403 errors that name the missing scope or header. API and MCP only on Business and Enterprise, and the free plan has no API.",
        "strengths": [
          "Scoped API keys (workspaces, accounts, posts, media, analytics) with 401 and 403 errors that name the missing scope or header",
          "Documented rate limits with X-RateLimit-Limit, Remaining and Reset headers and per-network daily caps",
          "List posts filters by state, date range, account, content query and type, with total_pages",
          "Analytics for post insights, hashtags, best times and competitors",
          "Kalemi Code names its registration, servers in Frankfurt, a DPA and a sub-processor list"
        ],
        "weaknesses": [
          "API and MCP only on Business and Enterprise, and the free plan has no API",
          "Async job polling for every post creation, with no idempotency key",
          "No OpenAPI spec, no public changelog and no SDKs",
          "The MCP article lists no tools and allows the key inside the server URL",
          "Status history unreadable to us, since robots.txt blocks status.publer.com"
        ],
        "agentNotes": [
          "List workspaces first and send Publer-Workspace-Id on later calls, or expect a 403",
          "Poll /job_status/{job_id} after posts/schedule and read payload.failures, since status reads complete even when posts failed",
          "Use the Bearer-API scheme, not Bearer",
          "Leave a one-minute gap between posts to the same account, or the job fails",
          "Read X-RateLimit-Reset after a 429 and wait until then, as there's no Retry-After"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 47.1
          }
        ],
        "editorialScores": {
          "ergonomics": 55,
          "maintenance": 41,
          "payments": 15,
          "reliability": 60,
          "schema": 46,
          "security": 41,
          "transparency": 58
        },
        "provenanceScore": 80
      },
      "connect": {
        "http": "curl https://app.publer.com/api/v1/workspaces -H \"Authorization: Bearer-API $PUBLER_API_KEY\""
      },
      "letme": {
        "capability": "https://letme.dev/social.post",
        "tool": "https://letme.dev/publer"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Business, per social account",
          "unit": "month",
          "usd": 7,
          "note": "Rate returned by the plans page, billing period discounts not checked"
        },
        {
          "item": "Business, per extra member",
          "unit": "month",
          "usd": 3
        }
      ],
      "provenance": {
        "legalEntity": "Kalemi Code",
        "domain": "publer.com",
        "domainRegistered": "2005-11-15",
        "domainNote": "publer.com was registered in 2005, long before Publer launched, so the domain was likely bought later.",
        "endpointOnVendorDomain": true,
        "terms": "https://publer.com/terms",
        "privacy": "https://publer.com/privacy",
        "statusPage": "https://status.publer.com/",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The terms list Kalemi Code of Tirana, Albania (registration L71705026N) and Kalemi Code LLC of Sheridan, Wyoming."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/publer.json",
      "live": {
        "slug": "publer",
        "probe": {
          "target": "https://app.publer.com/api/v1",
          "method": "get",
          "lastAt": "2026-10-05T03:17:31.342310429Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 59,
          "authRequired": false,
          "uptime24h": 99.27,
          "uptime30d": 99.04,
          "p50ms24h": 77,
          "p95ms24h": 122,
          "samples24h": 273,
          "samples30d": 1140,
          "days": [
            {
              "date": "2026-09-30",
              "probes": 35,
              "ok": 35
            },
            {
              "date": "2026-10-01",
              "probes": 276,
              "ok": 267
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 270
            },
            {
              "date": "2026-10-05",
              "probes": 38,
              "ok": 38
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.publer.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-04T21:40:24.668654789Z"
        },
        "securityTxt": {
          "url": "https://publer.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:16:01.163366831Z"
        },
        "llmsTxt": {
          "url": "https://publer.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:08.910999609Z"
        },
        "domain": {
          "domain": "publer.com",
          "registered": "2005-11-15",
          "source": "https://rdap.verisign.com/com/v1/domain/publer.com",
          "checkedAt": "2026-10-04T13:08:55.505674851Z"
        },
        "pages": [
          {
            "url": "https://publer.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:05.100060569Z",
            "changedAt": "2026-10-04T15:47:05.100060569Z",
            "fingerprint": "646894b36b90"
          },
          {
            "url": "https://publer.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:47:07.26173206Z",
            "changedAt": "2026-10-04T15:47:07.26173206Z",
            "fingerprint": "20a0cd58db8d"
          }
        ],
        "updatedAt": "2026-10-05T03:17:31.342310429Z"
      }
    },
    "summary": "Zernio (formerly Late) API + MCP has a score of 67.5 (B) against Publer API + MCP's 47.1 (D). Both do social post. The largest gap is maintenance \u0026 community, 46 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/late-vs-publer",
    "json": "https://www.anchorterminal.com/compare/late-vs-publer.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/late-vs-publer.md",
    "slim": "https://www.anchorterminal.com/compare/late-vs-publer.min.md"
  },
  "markdown": "Zernio (formerly Late) API + MCP has a score of 67.5 (B) against Publer API + MCP's 47.1 (D). Both do social post. The largest gap is maintenance \u0026 community, 46 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- Publer API + MCP: grade D, 47.1/100, rank #388 of 452. Markdown https://www.anchorterminal.com/tools/publer.md · JSON https://www.anchorterminal.com/api/v1/tools/publer.json\n\n## Which one, for what\n\nPick Zernio (formerly Late) API + MCP for reliability (+20), schema \u0026 documentation (+37), agent ergonomics (+33), security \u0026 auth (+16), payments \u0026 pricing (+25), maintenance \u0026 community (+46).\n\nPick Publer API + MCP for transparency \u0026 trust (+10).\n\n## Score by category\n\n| Category | Weight | Zernio (formerly Late) API + MCP | Publer API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 60 | Zernio (formerly Late) API + MCP +20 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 83 | 46 | Zernio (formerly Late) API + MCP +37 |\n| Agent ergonomics | 13% (16.2 this run) | 88 | 55 | Zernio (formerly Late) API + MCP +33 |\n| Security \u0026 auth | 14% (17.5 this run) | 57 | 41 | Zernio (formerly Late) API + MCP +16 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 15 | Zernio (formerly Late) API + MCP +25 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 87 | 41 | Zernio (formerly Late) API + MCP +46 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 59 | 69 | Publer API + MCP +10 |\n| Negative events | ≤15 | -4 | 0 | |\n| **Total** | | **67.5 · B** | **47.1 · D** | |\n\n## Facts side by side\n\n| Fact | Zernio (formerly Late) API + MCP | Publer API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Zernio | Publer |\n| Hosted endpoint | `https://zernio.com/api/v1` | `https://app.publer.com/api/v1` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | none | none |\n| Tools exposed | none | none |\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` | not listed |\n| Last release | 2026-10-01 | none |\n| Popularity | 46k npm/wk, 44k PyPI/wk | none |\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**Publer API + MCP.** Scoped API keys (workspaces, accounts, posts, media, analytics) with 401 and 403 errors that name the missing scope or header. API and MCP only on Business and Enterprise, and the free plan has no API.\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### Publer API + MCP\n\n1. List workspaces first and send Publer-Workspace-Id on later calls, or expect a 403\n2. Poll /job_status/{job_id} after posts/schedule and read payload.failures, since status reads complete even when posts failed\n3. Use the Bearer-API scheme, not Bearer\n4. Leave a one-minute gap between posts to the same account, or the job fails\n5. Read X-RateLimit-Reset after a 429 and wait until then, as there's no Retry-After\n\n## Other comparisons with Zernio (formerly Late) API + MCP or Publer 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 Publer API + MCP](https://www.anchorterminal.com/compare/ayrshare-vs-publer.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 Publer API + MCP](https://www.anchorterminal.com/compare/buffer-vs-publer.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 Upload-Post API + MCP](https://www.anchorterminal.com/compare/late-vs-upload-post.md)\n- [Metricool API + MCP vs Publer API + MCP](https://www.anchorterminal.com/compare/metricool-vs-publer.md)\n- [Mixpost API + MCP vs Publer API + MCP](https://www.anchorterminal.com/compare/mixpost-vs-publer.md)\n- [OneUp API + MCP vs Publer API + MCP](https://www.anchorterminal.com/compare/oneup-vs-publer.md)\n- [Post Bridge API + MCP vs Publer API + MCP](https://www.anchorterminal.com/compare/post-bridge-vs-publer.md)\n- [Postiz API + MCP vs Publer API + MCP](https://www.anchorterminal.com/compare/postiz-vs-publer.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 Publer API + MCP",
        "url": ""
      }
    ],
    "description": "Zernio (formerly Late) API + MCP has a score of 67.5 (B) against Publer API + MCP's 47.1 (D). Both do social post. The largest gap is maintenance \u0026 community, 46 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Zernio (formerly Late) API + MCP B 67.5",
      "Publer API + MCP D 47.1",
      "scores"
    ],
    "h1": "Zernio (formerly Late) API + MCP vs Publer API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-late-vs-publer.png",
    "path": "/compare/late-vs-publer",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Zernio (formerly Late) API + MCP vs Publer API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/late-vs-publer"
  },
  "tokens": {
    "markdown": 1650,
    "slim": 380
  },
  "version": 1
}
