API
Mirage social
Feed: profiles, follows, posts, timelines, stories, pages, server feeds and notifications, on the same people and servers as chat.
See Mirage. These routes are under /v1/messaging/social, for people signed in. Feed uses each person's Cactive profile, the same one chat shows, and the blocks they set in chat.
Who can use it. Feed is for people 16 and over. How strictly that's checked is a platform setting: off (everyone signed in, except someone known to be under 16), the person's date of birth, or a face check in their Cactive ID account. While the gate is closed, every social route answers 403 with code: "age_assurance", the reason (unchecked or under_16) and what would open it (check: date_of_birth, sent once with PUT /v1/messaging/social/me/date-of-birth, or estimation, the face check at https://id.cactive.com.au/age-check). GET /v1/messaging/social/me always answers, with the gate. Chat isn't affected.
Timelines. Following lists the posts of people and pages you follow, newest first. For You ranks posts by relevance and freshness, and each post can say why it's there. Not Interested lowers similar posts.
Server feeds. A server's feed follows the server's permissions, AutoMod and moderators, and can be off, for members only or public.
Phone notifications. Likes, replies, reposts and quotes, mentions, follows and posts from people whose bell is on also push to the Mirage app. GET /v1/messaging/social/me shows which kinds do (profile.pushes), and PATCH /v1/messaging/social/me with { "pushes": { "likes": false } } turns one off; everything still shows in notifications.
Every route below, with its parameters, request and response, errors and samples, is in the API reference.
| Route | What it does |
|---|---|
GET /v1/messaging/social/me | Your Feed: the age gate (gate: open, or why not: unchecked or under_16, with recheckAfter and what would open it, check: date_of_birth or estimation) and, once it's open, your social profile (visibility, public likes, muted words, pinned post, counts, unread activity and waiting follow requests). Always answers, so apps can show the gate. How strict the gate is is data (Admin → Feed): off (everyone signed in, except someone known to be under 16), your date of birth, or a face check in ID (Australia's Social Media Minimum Age); while it's closed, every other social route answers 403 with code: "age_assurance", reason and check. |
PUT /v1/messaging/social/me/date-of-birth | Declares your date of birth for the age gate: dateOfBirth (YYYY-MM-DD, from 1900, not in the future). Kept on your Cactive ID account, once: 409 once it's set (support corrects it). Under 16 keeps Feed closed until your 16th birthday, worked out when read. Answers as GET /me: the gate, and your social profile once it's open. |
PATCH /v1/messaging/social/me | Changes your social settings: visibility (public; followers: people ask to follow; private: as followers, and hidden from search and suggestions, with requests only from people you share a server with or chat friends; going public approves waiting requests), likesPublic (others see your Likes tab) and mutedWords (up to 200; posts with them stay out of your feeds and activity). |
PUT /v1/messaging/social/me/pinned | Pins one of your posts to the top of your profile (postId; empty unpins). |
GET /v1/messaging/social/people/:userId | Someone's profile on Feed (a person's Cactive ID profile, or a page's): counts, when they joined, your follow (active, requested or null) and bell, whether they follow you, whether they're on your close friends or muted, and whether you can see their posts. 404 for people who aren't on Feed, were deactivated, or blocked you (or you them). |
PUT /v1/messaging/social/me/featured | The posts your grid features at its top, in order (postIds, nine at most, your own photo and video posts; empty clears them). |
GET /v1/messaging/social/people/:userId/posts | A profile's posts, newest first: tab grid (their own photo and video posts; the first page also has the ones they feature, in their order, as featured), posts (posts, quotes and reposts), replies (everything), media (posts with photos or videos) or likes (theirs when they made likes public, or yours). 403 when only their followers see their posts. cursor for the next page. |
GET /v1/messaging/social/people/:userId/followers | Someone's followers, newest first, with your follow state toward each; hidden (403) when their posts are. |
GET /v1/messaging/social/people/:userId/following | Who someone follows, with your follow state toward each; hidden (403) when their posts are. |
PUT /v1/messaging/social/people/:userId/follow | Follows someone (state: "active"), or asks to when their account is followers-only or private (requested; private accounts take requests only from people they share a server with or are chat friends with). notify: true turns on post notifications. Up to 5,000 accounts and 400 new follows a day (platform settings). |
PATCH /v1/messaging/social/people/:userId/follow | Turns post notifications for someone you follow on or off (notify). |
DELETE /v1/messaging/social/people/:userId/follow | Unfollows someone, or withdraws a request. Their posts leave your Following timeline at once. |
GET /v1/messaging/social/requests | People asking to follow you, newest first. |
PUT /v1/messaging/social/requests/:userId | Approves a follow request; they're told. |
DELETE /v1/messaging/social/requests/:userId | Declines a follow request; they aren't told. |
DELETE /v1/messaging/social/followers/:userId | Removes one of your followers; they aren't told. |
GET /v1/messaging/social/close-friends | Your close friends: the people who see your close-friends posts and stories (when they follow you). |
PUT /v1/messaging/social/close-friends/:userId | Adds someone to your close friends. |
DELETE /v1/messaging/social/close-friends/:userId | Takes someone off your close friends. |
GET /v1/messaging/social/mutes | People you muted. |
PUT /v1/messaging/social/mutes/:userId | Mutes someone: their posts and activity stay out of your feeds and notifications; they aren't told and their profile still shows them. |
DELETE /v1/messaging/social/mutes/:userId | Unmutes someone. |
POST /v1/messaging/social/uploads | Where to PUT a photo (JPEG, PNG, WebP or GIF) or video (MP4, WebM or MOV) before posting it (name, mime, size; limits in the platform settings): answers mediaId, url and the headers to send. Then post with the media's mediaId, name, mime, size in pixels and alt text. |
POST /v1/messaging/social/posts | Posts: content (up to 4,000 characters; Markdown's chat profile, mentions as <@usr_…>, #hashtags), up to 10 media (each mediaId, name, mime, width, height, alt, a video's durationSecs and poster) or a poll (as in chat), audience (everyone, followers or close_friends) and replyPolicy (everyone, following or mentioned). replyTo makes a reply (within the post's reply controls), quoteOf a quote (of posts everyone can see), serverId a post in that server's feed, asPage posts as a page you run, event shares a server's scheduled event. Mentioned people who can see it are told; followers get it in their Following timeline. Up to 60 posts an hour (platform settings). |
GET /v1/messaging/social/posts/:postId | A post as you see it: its author, media (presigned for an hour), poll, what it quotes or reposts, counts, and what you've done and may do. 404 when you can't see it. |
PATCH /v1/messaging/social/posts/:postId | Edits your post's content (and its media's alt text, alts by media id) within an hour of posting, up to 5 times (platform settings); the earlier version is kept. |
DELETE /v1/messaging/social/posts/:postId | Deletes your post (or a page's you run, or a group post as one of the server's moderators) with its likes, reposts, bookmarks and poll votes; replies stay. |
GET /v1/messaging/social/posts/:postId/thread | A post with its conversation: the posts it replies to (oldest first; gap when one is gone or hidden from you), then its replies, the author's first (cursor for more). |
GET /v1/messaging/social/posts/:postId/edits | A post's earlier versions, oldest first, then as it is now. |
GET /v1/messaging/social/posts/:postId/quotes | Posts quoting a post, newest first. |
GET /v1/messaging/social/posts/:postId/likes | Who liked your post (only its author sees this), newest first. |
PUT /v1/messaging/social/posts/:postId/likes | Likes a post (a repost's post); its author is told (grouped per post for a day). Answers the post as you now see it. |
DELETE /v1/messaging/social/posts/:postId/likes | Takes your like back. |
GET /v1/messaging/social/posts/:postId/reposts | Who reposted a post, newest first. |
PUT /v1/messaging/social/posts/:postId/reposts | Reposts a post everyone can see: it shows on your profile and in your followers' Following timelines. Once per post. |
DELETE /v1/messaging/social/posts/:postId/reposts | Undoes your repost. |
PUT /v1/messaging/social/posts/:postId/bookmarks | Bookmarks a post (private: only the count shows). |
DELETE /v1/messaging/social/posts/:postId/bookmarks | Removes a bookmark. |
PUT /v1/messaging/social/posts/:postId/poll/answers/:answerId | Votes in a post's poll (one answer each replaces your vote unless it takes several). |
DELETE /v1/messaging/social/posts/:postId/poll/answers/:answerId | Takes your vote back. |
POST /v1/messaging/social/posts/:postId/not-interested | "Not interested": the post leaves your For You, and its author and hashtags weigh less there for 30 days. |
POST /v1/messaging/social/views | Counts views: the posts (postIds, up to 50) that were on your screen for a second; each counts once a day per person. |
GET /v1/messaging/social/feed/following | Your Following timeline, newest first: posts, quotes and reposts from the people and pages you follow (and your own), as you may see them now. cursor (the last post's id) for older ones. |
GET /v1/messaging/social/feed/for-you | For You: recent posts from your timeline, your servers' feeds, likes people made public and what's popular, ranked by relevance and freshness (weights in the platform settings), each with why it's there. cursor continues the same ranking. |
GET /v1/messaging/social/bookmarks | Your bookmarks, newest first. |
GET /v1/messaging/social/tags/:tag | Posts with a hashtag, newest first (posts everyone can see). |
GET /v1/messaging/social/explore | Explore: trending hashtags over the last day, popular posts, and people to follow (followed by people you follow, or in your servers; never private accounts). |
GET /v1/messaging/social/search | Searches posts (q: every word must match; #tags, from:usr_…, has:media, has:poll), newest first, or people by name (type=people). Only posts everyone can see are searchable. |
GET /v1/messaging/social/mention-candidates | People to complete an @mention with (q): who you follow, who follows you, and people found by name. |
POST /v1/messaging/social/stories | Shares a story: one photo or video (media, uploaded as for posts, with alt), an optional caption (up to 500) and closeFriends. It shows for 24 hours (platform settings) to your followers (close friends who follow you for close-friends stories; anyone on your profile when your account is public), then stays in your archive. |
GET /v1/messaging/social/stories/tray | Who has stories up for you: yourself first, then people whose stories you haven't seen, newest first, with how many and whether you've seen them all. |
GET /v1/messaging/social/stories/archive | Every story you've shared, newest first (only you see this); cursor for more. |
GET /v1/messaging/social/stories/:storyId | Whether a story is still up for you (active), whose it is and a still while it is: what a DM answering it shows. Others get 404 once it ends; its author always. |
POST /v1/messaging/social/stories/:storyId/responses | Answers one of a story's interactive stickers (layerId, value): a poll's answer number, a slide from 0 to 1, words for a question, 1 for a countdown's reminder. Votes and slides are final; what the sticker shows you comes back. |
GET /v1/messaging/social/stories/:storyId/responses | Every answer to your story's stickers, newest first, with who answered. Only its author. |
POST /v1/messaging/social/stories/:storyId/views | Marks a story seen; its author's view count goes up once per person. |
PUT /v1/messaging/social/stories/:storyId/likes | Likes a story; its author is told. |
DELETE /v1/messaging/social/stories/:storyId/likes | Takes your like back. |
GET /v1/messaging/social/stories/:storyId/viewers | Who saw your story and who liked it, newest first. Only its author. |
DELETE /v1/messaging/social/stories/:storyId | Deletes your story; it also leaves your highlights. |
GET /v1/messaging/social/people/:userId/stories | Someone's stories up now that you may see, oldest first, with whether you've seen and liked each (and the view counts of your own). |
GET /v1/messaging/social/people/:userId/highlights | Someone's highlights (named sets of their stories), with each one's cover and count; empty when their content is for followers only. |
GET /v1/messaging/social/people/:userId/highlights/:highlightId | A highlight's stories in order (close-friends stories only for their close friends). |
POST /v1/messaging/social/highlights | Makes a highlight from your stories (name, up to 40 characters; storyIds, up to 100; optional coverStoryId). Up to 50 a profile. |
PATCH /v1/messaging/social/highlights/:highlightId | Renames a highlight or changes its stories or cover. |
DELETE /v1/messaging/social/highlights/:highlightId | Deletes a highlight (its stories stay in your archive). |
GET /v1/messaging/social/groups/:serverId | A server's posts feed (Facebook's groups): feed (off, members or public), posting (everyone who can send messages, or moderators with Manage Messages), and whether you're a member, can post and can change it. Members, or anyone on Feed when the feed is public. |
PATCH /v1/messaging/social/groups/:serverId | Turns a server's feed on (feed: members or public) or off, and chooses who posts (posting). Manage Server; in the server's audit log. |
GET /v1/messaging/social/groups/:serverId/posts | A server's posts, newest first. Post to it with serverId on POST /social/posts; the server's AutoMod applies and its moderators (Manage Messages) can delete them. Public feeds' posts also reach their authors' followers. |
GET /v1/messaging/social/groups/:serverId/events | A server's upcoming and live events you can see, as cards to share in a post (event on POST /social/posts). |
PUT /v1/messaging/social/events/:serverId/:eventId/rsvp | Says you're going to a server's event, interested in it, or neither (status: going, interested or null); its counts follow and people in the server see them change. |
PUT /v1/messaging/social/events/:serverId/:eventId/cover | Sets an event's cover photo (media, uploaded as for posts), or removes it (null). Manage Events. |
GET /v1/messaging/social/pages/mine | The pages you run (as their owner or an admin), with their follower counts. |
POST /v1/messaging/social/pages | Makes a page for a business, place or creator (name, category, about, website, accent, a picture as avatar); you're its owner. People follow it like a person; post as it with asPage. Up to 10 a person. |
PATCH /v1/messaging/social/pages/:pageId | Changes a page's details (null clears one). Its owner or admins. |
DELETE /v1/messaging/social/pages/:pageId | Deactivates a page: its profile and posts stop showing and it can't be followed. Its owner. |
GET /v1/messaging/social/pages/:pageId/admins | Who runs a page: its owner and admins. For them. |
PUT /v1/messaging/social/pages/:pageId/admins/:userId | Makes someone on Feed an admin of your page (up to 20). Its owner. |
DELETE /v1/messaging/social/pages/:pageId/admins/:userId | Removes an admin. Its owner. |
GET /v1/messaging/social/notifications | Your activity, newest first: follows, requests and approvals, likes and reposts (grouped per post), replies, quotes, mentions, new posts from people whose bell you turned on, and moderation notices; with unread and waiting requests. Open apps also hear social_activity over the socket. |
POST /v1/messaging/social/notifications/read | Marks your activity seen. |