Send Threadgehog posts to Threads and X through Typefully
Posting on time, every day, is the part that slips when you are busy building something else. Connect Typefully to Threadgehog once with an API key. Threadgehog then hands each approved Threads or X post to your Typefully queue on the send schedule you pick, while the app is open, and Typefully does the posting.
How to set up Typefully
Create a Typefully account
Sign up at typefully.com. Typefully's free plan includes API access, so you can connect without a paid plan.
Connect your Threads and X accounts in Typefully
Threadgehog can only send to the Threads and X accounts already connected inside Typefully, so connect them in Typefully first. If none are connected, the channel step asks you to add an account in Typefully, then press "Refresh".

Create an API key in Typefully
In Typefully, open Settings, then API (typefully.com/?settings=api). Create a key and copy it.
Paste the key into Threadgehog
In Threadgehog, open Settings > Publishing and click "Connect a scheduler" under "Schedulers". During setup, "How do you want to publish?" opens the same sheet. Under "Pick your scheduler", choose "Typefully" and click "Next". Under "Paste your key", follow the key instructions or click "Open Typefully settings", then paste into "Paste Typefully API key". Set "Scheduled posts your plan allows per channel" to how many posts Threadgehog should keep scheduled per channel at a time; it starts at 10. Threadgehog tests the credentials automatically a moment after you paste them. When it shows "Connected as" followed by the account name, click "Next".

Choose where the project posts
The channel step shows a "Threads" picker, an "X" picker, or both, depending on the project. A single matching channel is preselected; if several match, pick one from "Choose channel". If Typefully has no account for a platform, add it in Typefully, then click "Refresh". Click "Done" to save the project's choices. To change a project later, click "Choose" beside it under "Where each project posts" in Settings > Publishing. New projects get a channel automatically when only one matches; with several, choose them under "Where does <project> post?" in the sheet that opens for the new project.

Pick how often it sends
In Settings > Publishing, under "Sending", the "Send to Typefully" menu sets how often Threadgehog sends: once a day from 9 AM, twice a day from 9 AM and 5 PM, every 6 hours, or every hour. Threadgehog needs to be open to send; "Send now" in the Queue sends right away. Turn on "Auto-approve X posts" under "X posts" and the X version of each approved Threads post goes straight to the Queue. The Typefully row's "..." menu under "Schedulers" has "Replace key", "Edit", "Test connection" and "Remove". "Edit" opens "Edit Typefully account", where you can change "Label" and the scheduled-posts limit.

What you get
- Multi-post threads publish as threads on both Threads and X, one post per part
- Images and other files attached to a post, including an AI image Threadgehog made for it, upload straight to Typefully with it, so you do not need Cloudinary or another image host
- Each queued post reaches Typefully with a time Threadgehog picks from your posts a day, spread from 9 AM to 9 PM; Schedule… sends a post for the date and time you pick
- Post now sends a post to Typefully to publish right away
- Sent posts show in Threadgehog's Scheduled tab, with Back to pending and Delete from Typefully buttons, and move to Published once Typefully reports them posted
What it costs
Threadgehog does not charge anything extra to connect Typefully. Typefully's free plan includes API access, 1 social set (Typefully's name for one person's or brand's group of accounts) and 10 posts a month. At one post a day, that cap runs out in about 10 days, so if Threadgehog sends every day you will likely need a paid Typefully plan, which lifts the monthly cap. Typefully sets its own prices and can change them; see typefully.com/pricing for current plans.
Your key and your data
Threadgehog asks for a Typefully API key, never your Typefully password. It saves the key in the macOS Keychain on your Mac and uses it only for calls from your Mac to Typefully's API. Publishing goes from your Mac straight to Typefully, so Threadgehog's servers do not receive the key or the posts you publish (threadgehog.com/privacy). Each connected scheduler account keeps its own entry in the Keychain, so connecting another account, for Typefully or any other scheduler, never overwrites or breaks this one. To stop Threadgehog using the key, remove the Typefully entry under Settings, Publishing, Schedulers; posts already scheduled in Typefully stay scheduled. To manage or replace the key itself, go to Settings, then API in Typefully.
Limits to know
- Threadgehog keeps up to the number you set per Typefully channel at a time (the "Scheduled posts your plan allows per channel" stepper, 1 to 5000, default 10; change it with "Edit" in the account row's "..." menu under "Schedulers"). The rest wait in Threadgehog's Queue for a later send.
- Threadgehog sends only while the app is open, on the schedule you pick in Settings, Publishing: once a day from 9 AM, twice a day from 9 AM and 5 PM, every 6 hours, or every hour. Posts already sent to Typefully publish at the times Threadgehog picked, even while Threadgehog is closed.
- Typefully's free plan allows 10 posts a month.
- Typefully does not share engagement numbers with Threadgehog, so with Typefully alone Threadgehog learns from your approvals, edits and rejections. Buffer, Publer, Postiz and Metricool (X posts only) add post numbers to Insights.
- Typefully limits API calls per user and per social set and does not publish the numbers. Its help center says the API is "designed for personal automations and team workflows."
Troubleshooting
The channel step says "No Threads account in Typefully yet. Add it in Typefully, then press Refresh." or the same message for X.
Why: The channel list has no Typefully account for that platform. The account may not be connected in Typefully yet, or the key may not have access to it.
Fix: Connect the missing account in Typefully, then click "Refresh" in the channel step, choose it and click "Done". If the key has lost access, get a current key in Typefully. In Settings > Publishing, open the Typefully row's "..." menu under "Schedulers" and choose "Replace key". Paste the current key into "New API key". Click "Replace"; Threadgehog tests it before saving and shows "Key replaced" on success. The account and its project channel choices stay in place.
"Typefully rejected the API key. Make a new key and paste it in Settings, Publishing."
Why: Typefully refused the key with a 401 or 403 response while sending a post: the key is invalid, was deleted or replaced in Typefully, or has no access to that social set. Threadgehog shows this in a banner after Post now or Schedule…, and after Send now as "Send failed:" followed by this message when no post went out. Automatic sends leave the posts in the Queue without a message.
Fix: Create a new key in Typefully under Settings, then API. In Settings > Publishing, open the Typefully row's "..." menu under "Schedulers" and choose "Replace key". Paste the current key into "New API key". Click "Replace"; Threadgehog tests it before saving and shows "Key replaced" on success. The account and its project channel choices stay in place.
"Typefully rejected this key. Check it in Typefully and paste it again."
Why: The connection test ran and Typefully answered with a 401 or 403: the key is wrong, was deleted or replaced in Typefully, or has no access to that social set. The sheet also shows channel-loading errors, and the saved account can be checked with "Test connection" in its "..." menu under "Schedulers".
Fix: Create a new key in Typefully under Settings, then API. If you are still on "Paste your key", correct the credentials there and wait for the automatic test, then click "Next" when it passes. For a saved account, open Settings > Publishing and open the Typefully row's "..." menu under "Schedulers" and choose "Replace key". Paste the current key into "New API key". Click "Replace"; Threadgehog tests it before saving and shows "Key replaced" on success. The account and its project channel choices stay in place.
"Couldn't reach Typefully. Check your connection and try again."
Why: Threadgehog's Mac could not reach Typefully's API during the connection test, usually because the Mac was briefly offline.
Fix: Check your internet connection, then click Test again.
"Typefully answered with an error: <message>"
Why: The connection test got back an error from Typefully that is not a rejected key or a network problem. After the colon, Threadgehog shows the error it got, usually "Typefully error" with the HTTP status code and Typefully's own text.
Fix: Read Typefully's message for the reason. If it does not explain itself, wait a few minutes and try again, or email support@threadgehog.com with the full message.
Send now shows "Send failed:" and a reason, such as "<project>:threads: no publishing channel mapped."
Why: No post went out on that send, and Threadgehog names the first problem it hit. "no publishing channel mapped" means that project's X or Threads row under Where each project posts is "Choose channel" (removing a Typefully account clears choices that used it). A refused key shows the "Typefully rejected the API key" message instead. Automatic sends skip these posts without a notice, so the posts just stay in the Queue.
Fix: In Settings > Publishing, click "Choose" beside the project under "Where each project posts". In the sheet, pick the Typefully channel for each platform the project uses, then click "Done". If the channel is missing, connect it in the scheduler and click "Refresh" in the sheet. Then try "Send now" again.
More than one Typefully entry appears under "Schedulers".
Why: The account was connected more than once. A new connection saves an account when you click "Next" after a passing key test; "Test" alone does not save one.
Fix: Open each unwanted Typefully row's "..." menu under "Schedulers", choose "Remove", and confirm. Posts already scheduled there stay scheduled. Removing an account clears project choices that used it. In Settings > Publishing, click "Choose" beside the project under "Where each project posts". In the sheet, pick the Typefully channel for each platform the project uses, then click "Done".
A post you approved is back in Pending with an orange "Typefully refused this" tag.
Why: Typefully rejected the post itself with a 400 or 422 response, for example because it could not process an attached file. Hover over the tag to read Typefully's reason, which starts with "Typefully rejected this: Invalid post:". With Post now or Schedule…, the same reason shows in a banner that starts with "Invalid post:". After a queue send, the notice reads "Sent <n> to Typefully. <n> moved back to Pending: Invalid post:" followed by the reason.
Fix: Edit the post or replace the attachment, then approve it again. Typefully's API accepts .jpg, .jpeg, .png, .webp, .gif, .mp4, .mov and .pdf files.
A post you approved is back in Pending with an orange "Typefully refused this" tag and the tooltip "Typefully could not publish this post."
Why: Threadgehog checked the post's status with Typefully and Typefully reported it as failed, so Threadgehog moved it back to Pending and tagged it.
Fix: Open the draft in Typefully to see why it failed, fix the cause there, then approve the post again in Threadgehog.
"Typefully could not upload the media (HTTP <code>)"
Why: Uploading the attached file to Typefully's storage failed. Threadgehog shows this after Post now or Schedule…; in queue sends, the post stays in the Queue and is tried again at the next send.
Fix: Send again. If the same code keeps coming back, email support@threadgehog.com with the code.
"Typefully is still processing the media, try again later"
Why: Typefully had not finished processing the attached file within the 60 seconds Threadgehog waits for it.
Fix: Wait a few minutes and send again. Queued posts are tried again at the next send without you doing anything.
A banner: "Typefully is limiting how fast posts can be added right now. Threadgehog keeps sending on the next run."
Why: Typefully answered with a 429 (rate limited) response while Threadgehog was sending the queue. Typefully limits API calls per user and per social set and does not publish the exact numbers.
Fix: Nothing to change. The queue stays as it is, and Threadgehog tries again at its next check while the app is open. Send now's notice uses the same wording, together with how many posts got out before the limit hit, if any.
"Sent <n>; <n> left (Typefully queue full for now)"
Why: Either the number of posts you set for that channel ("Edit" in the account row's "..." menu under "Schedulers", default 10) is already scheduled in Typefully, or Typefully refused new drafts with a 402 response (account paused or a paid plan required) or a plan-limit message. With Post now or Schedule…, a plan refusal shows as a banner that starts with "plan limit:".
Fix: If that many posts are already scheduled in that channel, nothing is wrong: more go out as Typefully publishes the scheduled ones. If not, check your plan and account status in Typefully. When an automatic send hands over nothing for this reason, Threadgehog holds automatic sends until the next 9 AM.
"Typefully error <code>: <message>"
Why: Typefully returned an error that Threadgehog has no specific message for, such as a server error on Typefully's side.
Fix: Try again in a few minutes. If it keeps happening, email support@threadgehog.com with the full message.
A post you removed with Delete from Typefully is still in Typefully.
Why: Threadgehog asks Typefully to delete the draft once and does not report it when that request fails, for example while your Mac is offline.
Fix: Delete the draft in Typefully directly.
Questions
Do I need a paid Typefully plan to connect it to Threadgehog?
No. Typefully's free plan includes API access, which is what Threadgehog uses. The free plan allows 10 posts a month, so if Threadgehog sends every day you will run out partway through the month; Typefully's paid plans lift that cap. Check typefully.com/pricing for current plans, since prices can change.
Is it safe to paste my Typefully API key into Threadgehog?
Threadgehog saves the key in the macOS Keychain on your Mac and sends it only to Typefully's API, from your Mac. Threadgehog's servers do not receive it. You can manage your keys in Typefully under Settings, then API.
I don't have a Typefully account yet. Do I need one to use Threadgehog?
No. Threadgehog also works with Buffer, Publer, Metricool and Postiz, or with no scheduler at all: choose "Export only" on setup's "How do you want to publish?" step to copy or export posts yourself. You need Typefully only if you want Threadgehog to hand posts to Typefully.
How often does Threadgehog send posts to Typefully?
You choose in Settings, Publishing: once a day from 9 AM, twice a day from 9 AM and 5 PM, every 6 hours, or every hour. Threadgehog sends only while the app is open. Send now in the Queue sends right away.
Can I switch from another scheduler to Typefully?
Yes. In Settings > Publishing, click "Connect a scheduler" and finish the key and channel steps for Typefully. For each other project, click "Choose" under "Where each project posts", pick the new channels and click "Done". Existing valid channel choices stay selected until you change them. Posts already sent to the old scheduler stay scheduled there; posts still in Threadgehog's queue use each project's chosen channel on the next send. To remove the old connection, choose "Remove" from its row's "..." menu under "Schedulers" and confirm. This clears any project choices that still used that account.
What happens to my queue if Typefully hits its rate limit or cannot be reached?
The posts stay in Threadgehog's Queue. Threadgehog shows a banner that Typefully is limiting how fast posts can be added, and tries again at its next check. If Typefully cannot be reached, the send stops and the next check tries again. Checks run only while Threadgehog is open.
Can Threadgehog post to Threads and X directly, without Typefully?
Threadgehog publishes through a scheduler: it hands approved posts to the scheduler you connect (Buffer, Typefully, Publer, Metricool or Postiz), and the scheduler posts them.
My key worked before. Why does Threadgehog now say no channel was found?
Check that your Threads or X account is still connected in Typefully. In Settings > Publishing, click "Choose" beside the project under "Where each project posts", then "Refresh" in the sheet. Pick the Typefully channels and click "Done". A rejected key shows "Typefully rejected this key. Check it in Typefully and paste it again." instead. Check the key's access in Typefully under Settings > API, or create a new one. In Settings > Publishing, open the Typefully row's "..." menu under "Schedulers" and choose "Replace key". Paste the current key into "New API key". Click "Replace"; Threadgehog tests it before saving and shows "Key replaced" on success. The account and its project channel choices stay in place.
Does Threadgehog show engagement numbers for posts sent through Typefully?
No. Typefully does not share engagement numbers with Threadgehog, so with Typefully alone Threadgehog learns from your approvals, edits and rejections. Buffer, Publer, Postiz and Metricool (X posts only) add post numbers to Insights.
Where do I get help with setup?
Email support@threadgehog.com or use threadgehog.com/support. Include any message Threadgehog showed, word for word.
Links
- Sign up for TypefullyThreadgehog may earn a commission if you sign up through this link.
- Typefully API settings
- Typefully pricing
- Typefully API reference
- Typefully API help article
- Threadgehog support