Compatible envelope
PostGate accepts the documented post, profiles, and media request shape, profile-group context, and unambiguous platform slugs, plus URL, base64, and pre-uploaded media.
PostGate was deliberately built PostProxy-compatible: the same post/profiles/media request envelope, profile-group context, and pagination, so switching is mostly a base URL and API key change. From there, PostGate makes a few deliberate different choices — a single structured error envelope, a full sandbox test-key lifecycle, explicit capability state for approval-gated platforms, draft-first MCP tooling, and white-label environments with bring-your-own provider apps.
PostGate accepts the documented post, profiles, and media request shape, profile-group context, and unambiguous platform slugs, plus URL, base64, and pre-uploaded media.
List endpoints use one-based page and per_page up to 100, returning page, per_page, total, and total_pages on every response.
Add a stable Idempotency-Key to every logical create-post request so retries after a timeout never create a duplicate post.
This is a factual comparison based on PostGate's own documentation and PostProxy's public product pages. We don't claim anything about PostProxy we haven't verified.
| Dimension | PostGate | PostProxy |
|---|---|---|
| Request & response envelope | Accepts the documented post/profiles/media payload, profile-group context, unambiguous platform slugs, URL/base64/pre-uploaded media, and page/per_page pagination — the same request idioms, so most client code ports with a base URL and key change. | Publishes across Instagram, TikTok, X, LinkedIn, Facebook, Threads, YouTube, Pinterest, Bluesky, Telegram, and Google Business through a single unified payload. |
| Error handling model | Every failure returns one structured error object: a stable code, human-readable message, platform when relevant, a retryable flag, optional details, and a request_id you can hand to support. | Tracks post delivery through explicit lifecycle states (including failed and failed_waiting_for_retry) and fires per-platform webhooks as each target resolves. |
| Sandbox & test environment | Full sandbox test-key lifecycle for building and testing integrations end to end before switching to a live key, plus explicit capability state for approval-gated platforms so you know what's usable in your workspace. | Ships a free plan and an interactive playground with sandbox mode, no credit card required, across every plan tier. |
| White-label & BYO provider apps | On the Build plan: branded embedded environments, a verified custom domain for the connection flow, and bring-your-own Meta/TikTok/LinkedIn/etc. app credentials per organization — your customers approve your app, not a shared one. | Offers multi-tenant profile groups to separate client scope for agencies, with white-label positioning aimed at SaaS and agency use cases. |
| MCP / AI-agent support | Hosted MCP server for profile discovery, status, analytics, comments, replies, and messages. create_post stays a draft unless the call explicitly sets confirm: true, so an agent can't publish by accident. | Provides built-in MCP support for Claude and other agent clients, plus n8n and Zapier integrations, on its paid plans. |
| Migration effort | Point your client at the PostGate origin, swap the Bearer token, add a stable Idempotency-Key per logical post, and treat post creation as acceptance — consume post.published/partial/failed webhooks or poll the returned ID. | — |
PostProxy details reflect its public pricing and product pages as of this writing and may change; see postproxy.dev/pricing for their current plans.
Stop branching on ad-hoc error fields. Every PostGate failure returns the same error object — code, message, platform, retryable, and request_id — so your retry logic and support workflow both get simpler. See the errors guide.
Test keys run the complete sandbox lifecycle before you ever touch a live credential, and approval-gated platforms report explicit capability state instead of a silent failure. Details in the migration guide.
On the Build plan, verify your own custom domain for the connection experience and bring your own Meta, TikTok, and other provider app credentials per organization, isolating quotas and approval status from every other workspace. See environments & provider apps.
Point your client at PostGate's API origin and replace the Bearer token. Most request bodies don't need to change.
Add a stable Idempotency-Key per logical post and treat creation as acceptance — consume post.published, post.partial, and post.failed webhooks or poll the returned ID.
Pre-upload large assets with POST /api/media and reuse the returned med_… ID for more reliable delivery instead of re-sending bytes with every request.