{
  "data": {
    "a": {
      "slug": "buffer",
      "name": "Buffer API + MCP",
      "vendor": "Buffer",
      "vendorUrl": "https://buffer.com",
      "kind": "http-api",
      "category": "social-media",
      "summary": "Buffer's GraphQL API, reopened to everyone on 2026-05-27 and free on every plan, with a hosted MCP server (20 tools) and a CLI.",
      "url": "https://www.anchorterminal.com/tools/buffer",
      "markdownUrl": "https://www.anchorterminal.com/tools/buffer.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/buffer.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/buffer.json",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.buffer.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@bufferapp/cli"
        }
      ],
      "auth": "mixed",
      "authNotes": "Personal API key as a Bearer token for your own account (it sees every organisation you belong to, no per-organisation scoping). App Clients acting for other users use OAuth 2.0 authorisation code with PKCE. The hosted MCP takes OAuth in Claude and other clients, or the API key as a Bearer header.",
      "pricing": "freemium",
      "pricingNotes": "API included on every plan. Free $0 (3 channels, 10 scheduled posts a channel, 1 API key, 3,000 requests a month). Essentials $5 a channel a month billed yearly ($60 a year, 3 keys, 7,500 requests). Team $10 a channel a month billed yearly ($120 a year, 5 keys, 15,000 requests). Channels above 10 cost less. 14-day trial on paid plans (https://buffer.com/pricing).",
      "priceSummary": "$5 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 in developer docs, llms-full.txt or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 20,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 687,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://developers.buffer.com",
      "llmsTxt": "https://developers.buffer.com/llms.txt",
      "capabilities": [
        "social.post",
        "social.schedule",
        "social.analytics"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "no-card",
        "mcp",
        "llms-txt",
        "closed-source",
        "typescript"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.3,
        "grade": "B",
        "agentReady": false,
        "rank": 220,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 2,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 65,
          "maintenance": 73,
          "payments": 30,
          "reliability": 55,
          "schema": 86,
          "security": 56,
          "transparency": 78
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "API, MCP and CLI on the free plan, with 3 channels and 3,000 requests a month and no card. 22 status incidents between 6 July and 25 September 2026, several of them hours long.",
        "strengths": [
          "API, MCP and CLI on the free plan, with 3 channels and 3,000 requests a month and no card",
          "Hosted MCP with OAuth 2.0, PKCE and 11 scopes, including read-only ones such as posts:read",
          "429 responses carry an exact Retry-After and don't use up quota",
          "Typed GraphQL schema, a schema changelog updated most days and @deprecated annotations with removal dates",
          "Security reporting route with a GPG key and bug rewards"
        ],
        "weaknesses": [
          "22 status incidents between 6 July and 25 September 2026, several of them hours long",
          "Low quotas, 100 requests per 15 minutes and 3,000 to 15,000 a month",
          "No media upload, every file has to sit at a public URL you host",
          "The changelog shows types removed on 2 and 25 September 2026 despite the additive-only promise",
          "No official SDKs, no tool annotations and no idempotency keys"
        ],
        "agentNotes": [
          "Call `{ account { organizations { id } } }` first, then list channels for an organisation before posting",
          "Include `... on MutationError` in every mutation, since errors come back with HTTP 200",
          "On 429, wait Retry-After plus a few seconds of jitter. The 429 itself doesn't cost quota",
          "Pass images and video as public direct URLs, not preview or login-gated links",
          "Use saveToDraft or addToQueue so nothing publishes by accident, because delete_post can't be undone"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62.3
          }
        ],
        "editorialScores": {
          "ergonomics": 65,
          "maintenance": 73,
          "payments": 30,
          "reliability": 55,
          "schema": 86,
          "security": 56,
          "transparency": 66
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl https://api.buffer.com -H \"Authorization: Bearer $BUFFER_API_KEY\" \\\n  -H \"content-type: application/json\" -d '{\"query\":\"{ account { id organizations { id name } } }\"}'",
        "claudeCode": "claude mcp add --transport http buffer https://mcp.buffer.com/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/social.post",
        "tool": "https://letme.dev/buffer"
      },
      "area": "communication",
      "unitPrices": [
        {
          "item": "Essentials plan",
          "unit": "month",
          "usd": 5,
          "note": "per channel, billed yearly ($60)"
        },
        {
          "item": "Team plan",
          "unit": "month",
          "usd": 10,
          "note": "per channel, billed yearly ($120)"
        }
      ],
      "provenance": {
        "legalEntity": "Buffer, Inc.",
        "domain": "buffer.com",
        "domainRegistered": "1996-10-28",
        "domainNote": "buffer.com was registered in 1996, long before Buffer bought it.",
        "endpointOnVendorDomain": true,
        "terms": "https://buffer.com/legal",
        "privacy": "https://buffer.com/legal#privacy-policy",
        "statusPage": "https://status.buffer.com",
        "changelog": "https://developers.buffer.com/changelog.html",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/buffer.json",
      "live": {
        "slug": "buffer",
        "probe": {
          "target": "https://api.buffer.com",
          "method": "get",
          "lastAt": "2026-10-05T00:57:17.578776083Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 296,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 149,
          "p95ms24h": 330,
          "samples24h": 272,
          "samples30d": 1113,
          "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": 11,
              "ok": 11
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.buffer.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T00:53:43.981284192Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@bufferapp/cli",
            "version": "1.2.2",
            "seenAt": "2026-10-04T16:22:59.742568507Z"
          }
        ],
        "npmWeekly": 705,
        "securityTxt": {
          "url": "https://buffer.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:16:01.700619316Z"
        },
        "llmsTxt": {
          "url": "https://developers.buffer.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:17:22.763905129Z"
        },
        "domain": {
          "domain": "buffer.com",
          "registered": "1996-10-28",
          "source": "https://rdap.verisign.com/com/v1/domain/buffer.com",
          "checkedAt": "2026-10-04T13:10:35.711858663Z"
        },
        "pages": [
          {
            "url": "https://developers.buffer.com/changelog.html",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-04T15:42:43.491663307Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ebe933ae857f"
          },
          {
            "url": "https://developers.buffer.com/guides/post-metrics.md",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-10-04T15:42:46.233967731Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3c79f6e8dea0"
          },
          {
            "url": "https://buffer.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:41:40.254633484Z",
            "changedAt": "2026-10-04T15:41:40.254633484Z",
            "fingerprint": "25d192efbf57"
          },
          {
            "url": "https://buffer.com/legal",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:41:37.920953633Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "47e5366a0554"
          }
        ],
        "updatedAt": "2026-10-05T00:57:17.578776083Z"
      }
    },
    "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-05T00:57:30.048256676Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 95,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 108,
          "p95ms24h": 192,
          "samples24h": 272,
          "samples30d": 1113,
          "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": 11,
              "ok": 11
            }
          ]
        },
        "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-05T00:57:30.048256676Z"
      }
    },
    "summary": "Buffer API + MCP has a score of 62.3 (B) against Upload-Post API + MCP's 58.9 (C). Both do social post. The largest gap is security \u0026 auth, 24 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/buffer-vs-upload-post",
    "json": "https://www.anchorterminal.com/compare/buffer-vs-upload-post.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/buffer-vs-upload-post.md",
    "slim": "https://www.anchorterminal.com/compare/buffer-vs-upload-post.min.md"
  },
  "markdown": "Buffer API + MCP has a score of 62.3 (B) against Upload-Post API + MCP's 58.9 (C). Both do social post. The largest gap is security \u0026 auth, 24 points.\n\n- Buffer API + MCP: grade B, 62.3/100, rank #220 of 452. Markdown https://www.anchorterminal.com/tools/buffer.md · JSON https://www.anchorterminal.com/api/v1/tools/buffer.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 Buffer API + MCP for schema \u0026 documentation (+5), security \u0026 auth (+24), transparency \u0026 trust (+5).\n\nPick Upload-Post API + MCP for agent ergonomics (+7), maintenance \u0026 community (+6).\n\n## Score by category\n\n| Category | Weight | Buffer API + MCP | Upload-Post API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 55 | 57 | Upload-Post API + MCP +2 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 81 | Buffer API + MCP +5 |\n| Agent ergonomics | 13% (16.2 this run) | 65 | 72 | Upload-Post API + MCP +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 56 | 32 | Buffer API + MCP +24 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 30 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 73 | 79 | Upload-Post API + MCP +6 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 78 | 73 | Buffer API + MCP +5 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **62.3 · B** | **58.9 · C** | |\n\n## Facts side by side\n\n| Fact | Buffer API + MCP | Upload-Post API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Buffer | Upload-Post |\n| Hosted endpoint | `https://api.buffer.com` | `https://api.upload-post.com/api` |\n| Transports | HTTP, Streamable HTTP | 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 | 20 | 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 | yes | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `com.upload-post/mcp` |\n| Last release | 2026-09-30 | 2026-09-27 |\n| Popularity | 687 npm/wk | 8 stars, 1.9k npm/wk, 6.2k PyPI/wk |\n| Agent reviews | 3/5 (2) | 3/5 (2) |\n\n## Verdicts\n\n**Buffer API + MCP.** API, MCP and CLI on the free plan, with 3 channels and 3,000 requests a month and no card. 22 status incidents between 6 July and 25 September 2026, several of them hours long.\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### Buffer API + MCP\n\n1. Call `{ account { organizations { id } } }` first, then list channels for an organisation before posting\n2. Include `... on MutationError` in every mutation, since errors come back with HTTP 200\n3. On 429, wait Retry-After plus a few seconds of jitter. The 429 itself doesn't cost quota\n4. Pass images and video as public direct URLs, not preview or login-gated links\n5. Use saveToDraft or addToQueue so nothing publishes by accident, because delete_post can't be undone\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 Buffer API + MCP or Upload-Post API + MCP\n\n- [Ayrshare API + MCP vs Buffer API + MCP](https://www.anchorterminal.com/compare/ayrshare-vs-buffer.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 Metricool API + MCP](https://www.anchorterminal.com/compare/buffer-vs-metricool.md)\n- [Buffer API + MCP vs Mixpost API + MCP](https://www.anchorterminal.com/compare/buffer-vs-mixpost.md)\n- [Buffer API + MCP vs OneUp API + MCP](https://www.anchorterminal.com/compare/buffer-vs-oneup.md)\n- [Buffer API + MCP vs Post Bridge API + MCP](https://www.anchorterminal.com/compare/buffer-vs-post-bridge.md)\n- [Buffer API + MCP vs Postiz API + MCP](https://www.anchorterminal.com/compare/buffer-vs-postiz.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 Upload-Post API + MCP](https://www.anchorterminal.com/compare/late-vs-upload-post.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": "Buffer API + MCP vs Upload-Post API + MCP",
        "url": ""
      }
    ],
    "description": "Buffer API + MCP has a score of 62.3 (B) against Upload-Post API + MCP's 58.9 (C). Both do social post. The largest gap is security \u0026 auth, 24 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Buffer API + MCP B 62.3",
      "Upload-Post API + MCP C 58.9",
      "scores"
    ],
    "h1": "Buffer API + MCP vs Upload-Post API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-buffer-vs-upload-post.png",
    "path": "/compare/buffer-vs-upload-post",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Buffer API + MCP vs Upload-Post API + MCP for AI agents",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/buffer-vs-upload-post"
  },
  "tokens": {
    "markdown": 1600,
    "slim": 330
  },
  "version": 1
}
