{
  "data": {
    "a": {
      "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"
      }
    },
    "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": "Upload-Post API + MCP has a score of 58.9 (C) against Publer API + MCP's 47.1 (D). Both do social post. The largest gap is maintenance \u0026 community, 38 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/publer-vs-upload-post",
    "json": "https://www.anchorterminal.com/compare/publer-vs-upload-post.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/publer-vs-upload-post.md",
    "slim": "https://www.anchorterminal.com/compare/publer-vs-upload-post.min.md"
  },
  "markdown": "Upload-Post API + MCP has a score of 58.9 (C) against Publer API + MCP's 47.1 (D). Both do social post. The largest gap is maintenance \u0026 community, 38 points.\n\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- 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 Publer API + MCP for security \u0026 auth (+9).\n\nPick Upload-Post API + MCP for schema \u0026 documentation (+35), agent ergonomics (+17), payments \u0026 pricing (+15), maintenance \u0026 community (+38).\n\n## Score by category\n\n| Category | Weight | Publer API + MCP | Upload-Post API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 60 | 57 | Publer API + MCP +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 46 | 81 | Upload-Post API + MCP +35 |\n| Agent ergonomics | 13% (16.2 this run) | 55 | 72 | Upload-Post API + MCP +17 |\n| Security \u0026 auth | 14% (17.5 this run) | 41 | 32 | Publer API + MCP +9 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 15 | 30 | Upload-Post API + MCP +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 41 | 79 | Upload-Post API + MCP +38 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 69 | 73 | Upload-Post API + MCP +4 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **47.1 · D** | **58.9 · C** | |\n\n## Facts side by side\n\n| Fact | Publer API + MCP | Upload-Post API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Publer | Upload-Post |\n| Hosted endpoint | `https://app.publer.com/api/v1` | `https://api.upload-post.com/api` |\n| Transports | HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | API key | OAuth or key |\n| Pricing | Paid | 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 | not listed | `com.upload-post/mcp` |\n| Last release | none | 2026-09-27 |\n| Popularity | none | 8 stars, 1.9k npm/wk, 6.2k PyPI/wk |\n| Agent reviews | 3/5 (2) | 3/5 (2) |\n\n## Verdicts\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**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### 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### 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 Publer API + MCP or Upload-Post API + MCP\n\n- [Ayrshare API + MCP vs Publer API + MCP](https://www.anchorterminal.com/compare/ayrshare-vs-publer.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 Publer API + MCP](https://www.anchorterminal.com/compare/buffer-vs-publer.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 Publer API + MCP](https://www.anchorterminal.com/compare/late-vs-publer.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- [Metricool API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/metricool-vs-upload-post.md)\n- [Mixpost API + MCP vs Publer API + MCP](https://www.anchorterminal.com/compare/mixpost-vs-publer.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 Publer API + MCP](https://www.anchorterminal.com/compare/oneup-vs-publer.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 Publer API + MCP](https://www.anchorterminal.com/compare/post-bridge-vs-publer.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 Publer API + MCP](https://www.anchorterminal.com/compare/postiz-vs-publer.md)\n- [Postiz API + MCP vs Upload-Post API + MCP](https://www.anchorterminal.com/compare/postiz-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": "Publer API + MCP vs Upload-Post API + MCP",
        "url": ""
      }
    ],
    "description": "Upload-Post API + MCP has a score of 58.9 (C) against Publer API + MCP's 47.1 (D). Both do social post. The largest gap is maintenance \u0026 community, 38 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Publer API + MCP D 47.1",
      "Upload-Post API + MCP C 58.9",
      "scores"
    ],
    "h1": "Publer API + MCP vs Upload-Post API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-publer-vs-upload-post.png",
    "path": "/compare/publer-vs-upload-post",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Publer API + MCP vs Upload-Post API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/publer-vs-upload-post"
  },
  "tokens": {
    "markdown": 1600,
    "slim": 330
  },
  "version": 1
}
