SDKs in six languages, plus MCP
Build from generated clients in Node.js/TypeScript, Python, Go, Ruby, PHP, and .NET, or connect an AI agent to the hosted MCP server with draft-first publish safety. Read the SDKs & MCP guide.
Upload-Post is a real, actively maintained social publishing API with a genuinely free tier, broad platform coverage, and its own open-source MCP server. It also ships official SDKs in only two languages and gates most of its plan tiers behind annual billing. PostGate takes a different shape: generated clients in six languages from one OpenAPI contract, per-target delivery evidence instead of a single post status, and white-label environments with a verified custom domain on paid plans. Below is a factual, sourced comparison so you can judge which fits your stack.
Every Upload-Post figure below is sourced from upload-post.com's own pricing page, documentation, and public GitHub repositories as of this writing and may change — verify current details on their site before deciding. PostGate figures come from our own docs and pricing page, linked throughout.
| Dimension | PostGate | Upload-Post |
|---|---|---|
| Starting price & free tier | Free sandbox plan, no card required. Paid plans start at $4.00/mo. See /pricing. | A free plan at $0/mo (10 uploads/mo, no card required). Paid plans list a Professional tier at $33/mo ($400 billed annually) and a Business tier at $350/mo ($4,205 billed annually) — both priced as annual commitments on the pricing page. |
| SDK language coverage | Generated clients for six languages/runtimes — Node.js/TypeScript, Python, Go, Ruby, PHP, and .NET — from one OpenAPI contract. See /docs/sdks-mcp. | Official SDKs for Python and JavaScript/Node.js. Other languages integrate directly against the REST API rather than through an official generated client. |
| White-label branding & custom domain | Every embedded connection environment supports a branded logo, primary color, and a verified custom domain on every plan that enables white-label. See /docs/environments. | Documents a white-label "Connect API" using profile-scoped JWT tokens so you can embed the OAuth flow in your own UI without exposing API keys to the browser — a token-scoping model rather than a verified custom domain with brand configuration. |
| Webhook & delivery model | Signed events (HMAC-SHA256 over timestamp and raw body) for post.published, post.partial, and post.failed, plus a per-target status array with retry state, error detail, and permalink. See /docs/webhooks. | Lists webhooks as part of its feature set in marketing copy, but its public documentation does not detail payload signing, event types, or a per-target delivery model at the level PostGate publishes. |
| MCP / AI-agent support | A hosted MCP server that creates a draft by default — a tool call must explicitly pass confirm: true to publish. See /docs/sdks-mcp. | An open-source MCP server (published on GitHub) exposing roughly 50 tools for publishing, scheduling, analytics, and account management to any MCP-compatible agent. |
Build from generated clients in Node.js/TypeScript, Python, Go, Ruby, PHP, and .NET, or connect an AI agent to the hosted MCP server with draft-first publish safety. Read the SDKs & MCP guide.
Create a test or live environment with a brand configuration — product name, logo, and primary color — plus a verified custom domain for the customer-facing connection experience. Read the environments guide.
Subscribe to signed post.published, post.partial, and post.failed events, and inspect per-target delivery evidence instead of guessing why a post stalled. Read the webhooks guide.
The hosted MCP server's create_post tool saves a draft unless the call explicitly sets confirm: true, so an agent can't publish by accident. Read the SDKs & MCP guide.
Pass a stable Idempotency-Key when creating a post and PostGate makes the logical request safe to retry for 72 hours — no accidental duplicate publishes from a retried request. Explore the idempotency docs.