Post to social media from ChatGPT
ChatGPT can use iHatePosting as a custom app. Once it is connected you can ask for a week of posts, have them checked against each network's rules, and save them as drafts or schedule them — all from the conversation where you wrote them.
Set it up
1. Create an iHatePosting API key
Sign in, open Settings → Developers and create a key. It starts with pk_live_ and is shown in full only once, so copy it before you leave the page.
2. Add iHatePosting to ChatGPT
Settings → Security and login: turn Developer mode on first, or + will not create an app from an MCP server. Then paste this URL into chatgpt.com/plugins → + as the MCP server URL, set Authentication to No Auth, tick "I understand and want to continue" and select Create. Replace YOUR_API_KEY with your key.
https://ihateposting.com/mcp?key=YOUR_API_KEY3. Ask it to post
Tell ChatGPT what you want to say and where. It saves a draft in iHatePosting unless you ask for the post to go out now or at a set time.
What is different about ChatGPT
- Turn developer mode on first: in ChatGPT on the web, open Settings, then Security and login, and switch on Developer mode. Until then, the plus button on chatgpt.com/plugins will not create an app from an MCP server.
- ChatGPT's form normally offers only OAuth, No Auth or Mixed, with no field for an API key, and OpenAI says ChatGPT cannot present custom API keys — so the key rides inside the URL. Set Authentication to No Auth — the key in the link is the authentication.
- Treat that URL like a password: anyone who has it can post to your accounts. If it leaks, create a new key in iHatePosting — every older key stops working the moment a new one is made.
- To use it, start a new chat, open the + menu and choose Developer mode — on some versions it sits under + then More — and pick iHatePosting. If it is not listed, open chatgpt.com/plugins, find it under your personal plugins and select + to install it; in a Work chat you can then type @ and pick it.
Limits. OpenAI says developer mode is available on Plus, Pro, Business, Enterprise and Edu. Its own help pages disagree about whether Plus and Pro accounts get tools that write — such as creating a post — or only tools that read. If ChatGPT can list your accounts but refuses to create a post, that plan limit is the likely reason. ChatGPT's app permission setting (Settings → Plugins → Permissions) can also make it ask first, or refuse an action it judges higher-risk; 'Allow read' makes it ask you before every change instead. On Business workspaces only admins and owners can add an app; on Enterprise and Edu an admin must first grant developer mode under Permissions & Roles.
OpenAI's own documentation: Developer mode in ChatGPT
Nothing goes out unless you say so
Every post ChatGPT writes is saved as a draft in iHatePosting unless you ask for it to be published now or at a set time. Publishing, rescheduling, retrying and deleting are marked as actions that change things, so clients that honour those markings ask you before they run them. Deleting a post in iHatePosting never removes one that is already live on a network.
Frequently asked questions
Can ChatGPT publish a post without asking me?
It saves a draft unless you ask it to publish now or at a set time. ChatGPT treats every tool not marked read-only as one that changes something; whether it asks you before running one depends on its app permission setting (Settings → Plugins → Permissions). Choose 'Always ask' or 'Allow read' if you want to approve every post yourself.
Why is my key in the URL?
ChatGPT's form normally offers only OAuth, No Auth or Mixed, with no field for an API key, so the key has to ride in the URL. Keep the link private, and create a new key in iHatePosting if it is ever shared — that switches the old one off.
Ready to post everywhere from ChatGPT?
Start your 90-day free trial — no credit card, about a minute to your first post.
Sign Up