How-to guides

Practical guides for things social media APIs make hard: scheduling TikTok posts, cross-posting video, publishing Instagram carousels, automating with n8n, and more.

Schedule

Hold posts and publish at a precise time, even when the platform API does not support scheduling natively.

How to Schedule LinkedIn Posts (and Find or Edit Them Later)

LinkedIn's built-in scheduler works for one account at a time. Here's how it works, where scheduled posts hide, and how to schedule LinkedIn posts programmatically with Postproxy.

LinkedIn's native scheduler accepts a publish time from 10 minutes to 3 months ahead for member posts, and from 1 hour to 3 months ahead for Page posts. Scheduled posts live behind the clock icon in the composer, where they can be rescheduled, edited, or deleted. Via API, a post is scheduled by adding an ISO 8601 `scheduled_at` timestamp.

How to Schedule Instagram Stories via API

Instagram has no native Story scheduling — the Graph API publishes immediately. Here's how to queue Stories and fire them at an exact time, with Node, Python and curl.

Instagram has no native Story scheduling — the API publishes immediately, so a scheduler holds the media and fires at your chosen time. A Story lives 24 hours from that moment, takes no caption, and is single-media only.

How to Auto-Post YouTube Shorts via API

Auto-publish YouTube Shorts at scale with Postproxy. Title, privacy, tags, category, AI-disclosure, and how scheduling actually works.

A Short is any video under 60 seconds in a vertical aspect ratio — YouTube classifies it automatically, there is no Shorts flag in the API. Publish it like any other upload and the format decides the placement.

How to Auto-Publish Pinterest Pins via API

Auto-pin every new blog post or piece of content to Pinterest. Real Postproxy params: board_id, destination_link, title, cover_url.

Publishing a Pin needs exactly one Pinterest-specific parameter through Postproxy: board_id. Titles cap at 100 characters and destination links at 2,048, and the rest of the request looks the same as any other platform.

How to Schedule & Auto-Post to Threads via API

Schedule Threads posts and auto-publish them on a timer. Threads has no native scheduling — here's how to queue posts and publish automatically, with Node, Python and curl.

Threads has no native scheduling — the API publishes the moment you call it, so a scheduler must hold the post and fire at the right second. Containers expire after 24 hours and video needs a processing wait before publish.

How to Post to a LinkedIn Company Page via API

Posting to a LinkedIn company page requires different OAuth scopes and a different author URN than personal posts. Here's the full pattern with Postproxy.

Posting as a company page rather than a person needs different OAuth scopes and an organization author URN, and the authenticating user must hold ADMINISTRATOR or CONTENT_ADMIN on the page. Getting either wrong returns a permissions error, not a clear one.

How to Schedule Instagram Reels via API

Instagram's Graph API doesn't accept future timestamps for Reels. Here's how to schedule Reels with Postproxy — container handling, processing waits, and exact-time publishing.

Scheduled Reels need a system that holds the post, creates the container, polls until processing finishes, then publishes. Reels take MP4 or MOV at 9:16, 3 seconds to 90 minutes, up to 300 MB, captions to 2,200 characters — still images are rejected outright.

How to Schedule TikTok Posts via API

TikTok's Content Posting API has no native scheduling. Here's how to schedule TikTok posts with Postproxy — exact-time and queue-based, with the real request shapes.

TikTok's Content Posting API only posts immediately; its own scheduling supports private uploads with a future publishAt, which is not the same thing. Scheduled public posting means holding the video and calling the API at the right time.

Cross-post & repurpose

Push the same media to many platforms in one call, and adapt one source into platform-specific formats.

Bulk & data sources

Drive scheduled publishing from spreadsheets, databases and CMS records.

Automation & agents

Wire publishing into n8n, Zapier, Make, MCP servers and AI agents.

How to Manage Google Business Profile from ChatGPT or Claude

Connect Postproxy once — a connector in Claude, a plugin in ChatGPT — and manage your Google Business Profile by talking to it: reply to reviews, set holiday hours on every location, swap photos, post offers, and ask how each location is doing.

Postproxy is a connector in Claude and a plugin in ChatGPT. Connect it, link your Google Business Profile with a Google sign-in, and the assistant can read and reply to reviews, change opening and holiday hours, upload photos, publish posts and offers, edit menus and action buttons, and report impressions, calls, and direction requests — across every location, from a plain request.

How to Automate Social Media with Hermes Agent

Install the Postproxy skill in Hermes Agent, add your API key to ~/.hermes/.env, and let Hermes publish to 11 platforms from any chat app or on a schedule.

Install the Postproxy skill, put one API key in ~/.hermes/.env, and Hermes publishes across platforms in natural language. The agent never holds platform credentials — only the Postproxy key — and per-platform failures, rate limits and retries are reported back rather than silently swallowed.

How to Automate Social Media with OpenClaw

Install the Postproxy skill from ClawHub, configure the API key in ~/.openclaw/.env, and let OpenClaw publish to 11 platforms from chat.

Install the Postproxy skill in OpenClaw and publish across platforms conversationally. The assistant holds only the Postproxy API key, never platform credentials, and reports per-platform results — including rate limits and retries — instead of failing silently.

How to Automate Social Media Posting with n8n

Use the official Postproxy n8n integration to publish to TikTok, Threads, Pinterest, and 6 more platforms from any workflow.

The official Postproxy n8n node publishes to TikTok, Threads, Pinterest, Bluesky and the rest from one workflow step. Platform coverage is not uniform in n8n's native nodes — LinkedIn company pages need an HTTP Request node, and Instagram has no Reels publish — which is what the Postproxy node removes.

How to Let AI Agents Publish to Social Media via MCP

MCP gives Claude Code, Cursor, and other LLM agents the ability to publish posts. Here's how to wire the Postproxy MCP server.

Give Claude Code, Cursor, and other LLM agents the ability to publish posts through the Postproxy MCP server. One tool boundary turns "draft a post" into "post it" across every supported platform.

Connecting an AI agent?

Set up Claude, ChatGPT, Cursor, Codex, Hermes, OpenClaw, or the MCP server from the Agentic hub.

Inbox & engagement

Reply to comments, send and receive DMs, and manage Google Business reviews through the same API.

How to Reply to WhatsApp Business Messages with an AI Agent

Connect the Postproxy MCP server and let Claude, ChatGPT, or Cursor work your WhatsApp Business inbox — reading conversations, replying, and sending approved templates when the 24-hour window has closed.

Point an MCP client at Postproxy and your agent can run a WhatsApp Business inbox with tools alone — listing chats, reading threads, checking whether a free-form reply is allowed, and falling back to an approved template when it isn't. No API integration to write.

How to Send Messenger Quick Replies and Buttons via API

Send tappable quick-reply chips and buttons in Facebook Messenger and Instagram DMs through one API — limits, card templates, Instagram's restrictions, and routing taps by payload.

Send up to 13 quick-reply chips or 3 buttons with a Facebook Messenger or Instagram DM, then route each tap by the payload you chose. One API, both networks, no bot framework.

How to Set Instagram Ice Breakers via API

Manage the suggested questions Instagram shows when a user opens a new DM thread — set up to 4 ice breakers, receive taps as webhooks, and auto-respond by payload.

Set up to 4 Instagram ice breakers — the suggested questions shown when someone opens a new DM thread — receive taps as webhooks, and auto-respond by payload. Capture your highest-intent DM entry point.

How to Track ig.me and m.me Link Referrals via API

Attribute Instagram and Messenger DM conversations to campaigns with ig.me/m.me ref parameters — referral webhooks, chat metadata, and replying before the first message.

An ig.me link carries a ref parameter of up to 2,083 characters, letting you attribute a DM conversation to the campaign that started it. The referral fires a webhook and opens the 24-hour messaging window before the user writes — but Meta only delivers it for profiles with at least one ice breaker set.

How to Let AI Agents Answer DMs and Comments via MCP

Give Claude or any MCP client the tools to read and answer Instagram DMs, moderate comments, and reply to Google reviews — engagement tools on the Postproxy MCP server.

Connect Claude or any MCP client to the Postproxy engagement tools and your AI agent can read Instagram DMs, hide or reply to comments, and respond to Google reviews directly — no copy-paste, no per-platform plumbing.

How to Auto-Respond to Google Reviews with AI

Wire a webhook, an LLM, and one POST into a Google review auto-responder — star-rating-aware drafts, human approval for negative reviews, multi-location routing.

An LLM drafts a reply, the API posts it, and a webhook triggers the whole loop on each new review. Ratings-only reviews arrive with body null and star_rating set — those need a different prompt path than reviews with text.

How to Build a Unified Social Media Inbox via API

One chat and message schema across Facebook Messenger, Instagram DMs, Telegram, and Bluesky — list conversations, receive webhooks, and reply from a single inbox API.

List conversations, receive webhooks, and reply across Facebook Messenger, Instagram DMs, Telegram, and Bluesky from one inbox API with a single chat and message schema — four integrations collapsed into one.

How to Auto-Hide & Moderate Comments via API (Instagram, Facebook, Threads)

Build automatic comment moderation — hide spam and abuse, unhide false positives, delete when needed — with one comment moderation API across Instagram, Facebook, and Threads.

Hide spam and abuse, unhide false positives, and delete when needed across Instagram, Facebook, and Threads from one comment moderation API — automatic moderation that keeps up with any posting volume.

How to Auto-Reply to Instagram Comments via API

Reply to Instagram comments programmatically — comment webhooks in, replies out, with author signals for routing. One Comments API for Instagram, Facebook, and Threads.

Reply to Instagram comments automatically from a webhook: an inbound comment event triggers a reply through the Comments API. Instagram comment replies are text-only — attaching media returns an error — and reply length is capped, so keep them short.

How to Turn Instagram Comments into DMs via API (Private Replies)

Build the "comment LINK to get the guide" flow with the private reply API — comment webhook in, DM out. Works on Instagram and Facebook, no ManyChat needed.

A private reply DMs someone who commented on your post, bypassing the 24-hour messaging window for up to 7 days after the comment. Instagram allows exactly one private reply per comment — a retry that double-fires is rejected. After it lands, the normal DM window applies.

How to Reply to Google Business Reviews via API

List and reply to Google Business Profile reviews programmatically — multi-location filtering, star-only reviews, webhooks for new reviews, and reply management.

Google Business Profile exposes reviews and replies, not deletion — a business can remove its own reply but never the review. Ratings without text are valid reviews and arrive with an empty comment. Multi-location accounts filter by location, and webhooks fire on new reviews.

How to Send Facebook Messenger Messages via API

Send and receive Facebook Messenger messages programmatically — Page chats, PSIDs, the 24-hour window, attachments, reactions, and read receipts via the Postproxy API.

Facebook Messenger is reply-based: free-form messages are allowed only within 24 hours of the person's last inbound message. A private reply to a commenter extends that to 7 days, once per comment. Chats are keyed by PSID, and attachments send one per message.

Instagram Direct Message API: Send, Receive, and Automate DMs

How to send Instagram DMs via API — the 24-hour window, private replies, ice breakers, attachments, reactions and inbound webhooks, with working requests.

Instagram messaging is reply-based: free-form DMs only within 24 hours of the user's last message. A human can reply up to 7 days out with the HUMAN_AGENT tag, and private replies to a commenter bypass the window once per comment. Cold outreach to arbitrary users is not permitted by Meta.

Profile management

Keep Google Business Profile listings current — hours, attributes, photos, menus, action buttons, and per-location analytics.

How to Add "Order Online" and "Book" Buttons to Google Business Profile via API

Create, prefer, update, and delete place action links — the Order online, Book, Reserve a table, and Shop buttons on a Google Business Profile listing — programmatically, across one location or hundreds.

Place action links are the action buttons on a Google Business Profile listing. Each has a type (FOOD_ORDERING, DINING_RESERVATION, APPOINTMENT, SHOP_ONLINE and others), a URL, and a preferred flag. Links from aggregators like delivery platforms appear alongside the business's own and cannot be edited; the business's own link can be marked preferred so it shows first.

How to Pull Google Business Profile Insights via API

Read Search and Maps impressions, website clicks, call clicks, direction requests, bookings, and food orders for every Google Business Profile location as a timeseries — one endpoint, no Business Profile Performance API setup.

Google Business Profile performance metrics — impressions on Search and Maps split by desktop and mobile, website clicks, call clicks, direction requests, conversations, bookings, and food orders — are exposed per location through the profile stats endpoints. Pass the location_id as placement_id. Snapshots are trailing 30-day totals captured daily; there is no follower count and no per-post analytics.

How to Manage Google Business Profile Photos via API

Upload cover, logo, interior, and gallery photos to a Google Business Profile location programmatically, list what's there, delete outdated images, and keep photo sets consistent across every location.

Google Business Profile photos are added by URL: Google fetches the file from a public HTTPS address, so the upload call is a JSON request with media_url and a category such as COVER, LOGO, INTERIOR, or MENU. Photos must be JPG or PNG between 10 KB and 5 MB. The gallery can be listed and individual items deleted.

How to Manage Google Business Profile Menus and Services via API

Publish a full food menu with sections, items, and prices to a restaurant's Google Business Profile, or maintain the service list on any other business type — programmatically, with the eligibility checks that decide which one applies.

Google Business Profile has two structured catalogues: food menus (menu → section → item → price) for restaurant-type categories, gated by canHaveFoodMenus, and the service list for everyone else, gated by canModifyServiceList. Both are replaced wholesale on update, so read first, edit, and send the complete list back.

How to Update Google Business Profile Hours via API

Set regular hours, holiday hours, and kitchen or delivery hours on a Google Business Profile location programmatically, mark a temporary closure, and roll the change across every location.

Google Business Profile hours are three separate blocks on the location resource: regularHours (weekly), specialHours (date-specific overrides for holidays), and moreHours (named sets like kitchen or delivery). Each is updated with a field-masked PATCH; a temporary closure is a separate openInfo status on the location.

How to Update Google Business Profile Attributes via API

Set payment options, accessibility, amenities, and menu or booking URLs on a Google Business Profile location programmatically — discover valid attributes first, then patch booleans, enums, and URLs without clearing the rest.

Google Business Profile attributes are typed facts on a location: booleans, single or multi-select enums, and URLs. The set a location may use depends on its primary category and country, so list available attributes first. Updates default to a mask of exactly the attributes sent, so partial writes never clear the others.

Ready to get started?

Start with our free plan and scale as your needs grow. No credit card required.