TL;DR, Quick Answer
6 min readMeta defines a ghost post as a Threads post that is archived after 24 hours. It is text-only, it never federates to the fediverse even when fediverse sharing is on, and you choose at post time whether replies appear publicly or land in your inbox, a choice that cannot be edited afterwards. The Threads API creates one by adding is_ghost_post=true to a TEXT media container, and GET /{threads-user-id}/ghost_posts returns them with a ghost_post_status of ACTIVE or ARCHIVED.
What is a Threads ghost post?
Meta defines a Threads ghost post as a post that is archived after 24 hours, in the Help Center article "Share a ghost post on Threads". The feature is documented, not folklore: there is a help article, a developer guide, a dedicated API parameter, and an October 2025 announcement on Meta's own newsroom. Anyone who tells you Meta publishes nothing about ghost posts is describing the situation before that launch.
The Help Center wording is short enough to quote in full: "A ghost post is a post on Threads that is archived after 24 hours." The developer documentation says the same thing in API terms: "Ghost posts allow you to create text posts which will be auto-archived after 24 hours."
Creating one is a gesture rather than a menu. Meta's instructions are to tap New post, then "Tap and hold Ghost post in the bottom right to make your current post a ghost post". The tap and hold is the part people miss, because a single tap does nothing.

What happens when a ghost post expires?
Archiving is not deletion, and the two behave differently in five places.
| While active | After 24 hours | |
|---|---|---|
| Appears in feed | Yes | No |
| Appears on your profile | Yes | No |
| Shows as a preview in chats | Yes | No |
| Replies readable by you | Yes | Yes |
| Appears in the liker's "Your likes" | Yes | No |
Meta's own summary of the transition: "Once a post is archived, you can still view replies to the post, but your ghost post will no longer appear in feed, your profile, or as previews in chats."
Two rules govern what you can do afterwards. "You can't unarchive a ghost post, but you can delete it", so the archive is one way. And "If you delete a post before it disappears, it won't be saved to your archive", so deleting early destroys the record instead of filing it.
There is a knock-on effect for people who engage with your ghost post rather than write one. Meta states that "If you like a ghost post, it won't appear in Your likes on Threads after it expires", which means a reader's own like history loses the entry too.
Where can you create a ghost post?
On phones. The Help Center article carries a platform banner reading "This feature isn't available on computers, but it is available on these devices", and offers only Android App Help and iPhone App Help. Threads on the web has no ghost icon in the composer.
That creates an odd split. A person cannot write a ghost post from a laptop through threads.com, but an application holding a Threads API token can create one from any server in the world. The restriction is a client decision in the mobile apps rather than a property of the post type.
Once posted, ghost posts get their own reading surfaces. You see your own from your profile picture on your profile, and Meta describes a separate feed: tap Menu in the top left, then Ghost posts, for "a feed that only includes ghost posts that you and others share".

How does the Threads API handle ghost posts?
With one boolean on the existing two-step publishing flow. You create a TEXT media container and add is_ghost_post:
curl -i -X POST \
-d "media_type=TEXT" \
-d "text=<TEXT>" \
-d "is_ghost_post=true" \
-d "access_token=<ACCESS_TOKEN>" \
"https://graph.threads.net/v1.0/<THREADS_USER_ID>/threads"The container ID that comes back goes to POST /{threads-user-id}/threads_publish exactly as a normal post would. Nothing else in the publishing call changes.
Retrieval has its own endpoint. GET /{threads-user-id}/ghost_posts returns a paginated list of an app-scoped user's ghost posts, and two fields exist only on this post type:
AdaptlyPost
Start 7-Day FREE Trial
All-platform analytics
Social Inbox
AI-powered assistant
| Field | Values |
|---|---|
ghost_post_status | ACTIVE for a live ghost post, ARCHIVED for an expired one |
ghost_post_expiration_timestamp | ISO 8601 timestamp of when the post expires or expired |
Both fields carry the same note in the reference: "This will only show for posts that are ghost posts." Reading them takes the threads_basic permission, the same one every Threads endpoint requires.
Meta's own two pages disagree on the host name. The ghost posts guide sends its example to https://graph.threads.net/v1.0/, while the main Threads Posts document sends every example to https://graph.threads.com/v1.0/. Both hosts resolve today, and a client that hardcodes one of them from the wrong page will keep working until Meta retires the older domain.
What are the limits on a ghost post?
Four restrictions come straight from the developer documentation, and they are tighter than most people expect.
Ghost posts are text-only. No image, no video, no carousel, no GIF, no link card. The Help Center repeats the rule for app users: "Note: Ghost posts are text-only."
"You cannot reply to any post with a ghost post." The disappearing format is reserved for top-level posts, so you cannot drop a temporary reply into someone else's thread.
"The only feature supported with ghost posts is text spoilers." Polls, topic tags, text attachments and link attachments are all out.
Ghost posts never federate. Meta's phrasing leaves no room: "Even if you have turned on sharing to the fediverse, your ghost posts will not be shared to the fediverse." A Mastodon follower who sees your normal Threads posts through the fediverse bridge will not see the ghost ones at all.
The reply routing choice is permanent. Before posting you tap "Replies go to messages" and pick either "Get replies as messages" or "See replies on post". Meta's warning: "Once you've shared your ghost post, this setting can't be edited." Pick messages and only you can read the replies; pick the post and they behave like ordinary public replies for the 24 hours the post is visible.
Everything else about a normal post still applies. The 500 character cap holds, along with Meta's unusual rule that emoji count as their UTF-8 byte length rather than as one character, which is worth understanding before you write anything near the ceiling. The arithmetic is covered in how the Threads character limit counts emoji. The account-level rate limit of 250 published posts per 24 hours counts ghost posts too, which matters if you are already queueing Threads posts on a schedule.
Frequently asked questions
Does Meta document ghost posts on Threads?
Yes. Meta publishes a Help Center article, "Share a ghost post on Threads", a developer guide at Threads API Create Posts, a retrieval reference for GET /{threads-user-id}/ghost_posts, and an October 2025 newsroom announcement. The feature is fully specified in Meta's own material.
Can you post a ghost post with a photo?
No. Both Meta's Help Center and its developer documentation state that ghost posts are text-only. The API accepts is_ghost_post=true on a media_type=TEXT container only.
Can you get a ghost post back after it archives?
No. "You can't unarchive a ghost post, but you can delete it." Archived ghost posts stay readable to you through your archive, and replies to them remain viewable, but the post never returns to feed or profile.
Who can see replies to a ghost post?
It depends on the routing option chosen at post time. With "Get replies as messages", Meta states that "only you can see those replies". With "See replies on post", replies are visible on the post while it is live. The setting cannot be changed after posting.
Do ghost posts reach Mastodon through the fediverse bridge?
No. Meta states that ghost posts are not shared to the fediverse even for accounts that have fediverse sharing turned on.
Is a ghost post the same as a post nobody sees?
No. People also use "ghost posting" loosely for a normal post that seems to get no reach, which is a distribution complaint rather than a post type. Ghost posts are a deliberate format with a 24 hour archive timer and an API flag. The other meaning is closer to what a shadowban actually is.
AdaptlyPost
Start 7-Day FREE Trial
All-platform analytics
Social Inbox
AI-powered assistant
Can you create a ghost post from a computer?
Not through Threads itself. The Help Center flags ghost posts as unavailable on computers, listing only Android and iPhone instructions, and threads.com has no ghost icon in the composer. An app calling the Threads API can still create one from a server anywhere, because the restriction lives in the mobile apps rather than in the post type itself.
Can a ghost post reply to someone else's thread?
No, a ghost post can only stand as a top-level post. Meta's developer documentation states plainly that you cannot reply to any post with a ghost post, so the disappearing format never attaches to an existing conversation.
What happens to a like on a ghost post once it archives?
The like vanishes from the liker's own history. Meta states that if you like a ghost post, it will not appear in Your likes on Threads after it expires. The removal applies to the reader who liked it, not just to the poster's own archive.
Do ghost posts count toward Threads' posting limit?
They publish through the same endpoint, so budget for them. Meta limits a profile to 250 API-published posts in a rolling 24 hours and names no ghost post exemption, so count each scheduled ghost post against that allowance.
Put this into practice with AdaptlyPost
Was This Article Helpful?
Let us know what you think!
See us more often in Google
One click marks AdaptlyPost as a preferred source, so our articles sit higher in your Top Stories, AI Mode, and AI Overviews.
Before you go...
AdaptlyPost
Schedule your content across all platforms
Manage all your social media accounts in one place with AdaptlyPost.
All-platform analytics
Social Inbox
AI-powered assistant
Related Glossary Terms


Why the Threads Character Limit Counts Emoji as UTF-8 Bytes
The Threads character limit is 500, but Meta counts each emoji as its UTF-8 byte length, so one family emoji costs 25. Here is how to count a post correctly.


Why the Bluesky Image Size Limit Is 2,000,000 Bytes
The Bluesky image size limit is 2,000,000 bytes per post image, set by maxSize in the images lexicon. Avatars and banners stop at 1,000,000 bytes.


What Every IPTC Digital Source Type Code Means
Every IPTC digital source type QCode in plain English: 17 live terms, 3 retired, and what social platforms do with the value after upload.
Related Articles


Why the TikTok Caption Character Limit Is Measured in UTF-16 Runes
The TikTok caption character limit is 2200 UTF-16 runes for video and 90 for a photo title. Runes are not characters, and one emoji can cost eleven.


C2PA in Plain English: What Are Content Credentials?
C2PA manifests explained: what are Content Credentials, what a claim signature proves, and which networks say anything about the manifest after an upload.


What Instagram's content_publishing_limit Endpoint Returns
Instagram's content_publishing_limit endpoint returns quota_usage plus a config block holding quota_total 50 and quota_duration 86400 seconds.

