Skip to main content

Verified against Misskey 2026.10.0 source (ApRendererService.ts, ApInboxService.ts, type.ts, misc/contexts.ts), FediDB, forge APIs for forks on 2026-10-15.

Misskey

Misskey is a feature-rich microblogging platform originating from Japan.

Overview​

PropertyValue
LanguageTypeScript (Node.js)
DatabasePostgreSQL
LicenseAGPL-3.0
Repositorygithub.com/misskey-dev/misskey
Latest release2026.10.0 (2026-10-01)
Documentationmisskey-hub.net

Forks​

ForkStatus (October 2026)
SharkeyActively maintained; ~25K accounts on ~500 servers (FediDB)
FoundKeyOccasional commits (latest September 2026), no tagged releases
Firefish (formerly Calckey)Its source host (git.joinfirefish.org) was unreachable on 2026-10-15; ~20 servers remain on FediDB

ActivityPub Implementation​

The JSON below follows Misskey's renderer (ApRendererService.ts) and JSON-LD context (misc/contexts.ts); values are illustrative.

Actor​

{
"type": "Person",
"id": "https://misskey.example/users/9abc",
"preferredUsername": "alice",
"name": "Alice",
"inbox": "https://misskey.example/users/9abc/inbox",
"outbox": "https://misskey.example/users/9abc/outbox",
"featured": "https://misskey.example/users/9abc/collections/featured",
"sharedInbox": "https://misskey.example/inbox",
"endpoints": { "sharedInbox": "https://misskey.example/inbox" },
"isCat": true,
"_misskey_summary": "Profile text in MFM"
}

isCat maps to misskey:isCat in Misskey's context, so it appears as a plain isCat key. Misskey also publishes sharedInbox at the top level as well as in endpoints.

Note (Post)​

{
"type": "Note",
"id": "https://misskey.example/notes/9xyz",
"attributedTo": "https://misskey.example/users/9abc",
"content": "<p>Hello from Misskey! :blobcat:</p>",
"_misskey_content": "Hello from Misskey! :blobcat:",
"source": {
"content": "Hello from Misskey! :blobcat:",
"mediaType": "text/x.misskeymarkdown"
},
"to": ["https://www.w3.org/ns/activitystreams#Public"],
"cc": ["https://misskey.example/users/9abc/followers"],
"tag": [
{
"type": "Emoji",
"name": ":blobcat:",
"icon": { "type": "Image", "url": "https://misskey.example/files/blobcat.png" }
}
]
}

Quote Posts​

A quote sets both _misskey_quote and quoteUrl to the quoted note, and appends an RE: link inside a quote-inline span to content for software that doesn't understand either property:

{
"type": "Note",
"content": "<p>This is important!<br><br><span class=\"quote-inline\">RE: <a href=\"https://other.example/notes/1\">https://other.example/notes/1</a></span></p>",
"_misskey_quote": "https://other.example/notes/1",
"quoteUrl": "https://other.example/notes/1"
}

On receipt Misskey reads _misskey_quote or quoteUrl (ApNoteService.ts). It does not implement Mastodon's consent-based FEP-044f flow.

Supported Activities​

Inbound handlers in ApInboxService.ts:

ActivityNotes
Create / Update / DeleteNotes (incl. polls as Question)
Follow / Accept / RejectFollow requests
LikeAlso accepts EmojiReact and EmojiReaction as reactions (type.ts)
AnnounceRenotes
UndoFollow, Block, Like, Announce, Accept
Add / RemovePinned notes
Block, Flag, MoveBlocks, reports, account migration

Emoji Reactions​

Misskey sends reactions as a Like carrying the emoji in both content and _misskey_reaction, plus an Emoji tag for custom emoji (renderLike):

{
"type": "Like",
"id": "https://misskey.example/likes/9r1",
"actor": "https://misskey.example/users/9abc",
"object": "https://mastodon.example/users/bob/statuses/456",
"content": ":blobcat:",
"_misskey_reaction": ":blobcat:",
"tag": [
{
"type": "Emoji",
"name": ":blobcat:",
"icon": { "type": "Image", "url": "https://misskey.example/files/blobcat.png" }
}
]
}

Servers that only understand Like (such as Mastodon) count it as a plain favourite.

Custom Extensions​

PropertyDescription
_misskey_contentOriginal MFM text (also in source as text/x.misskeymarkdown)
_misskey_quote, quoteUrlQuoted note
_misskey_reactionReaction emoji on a Like
_misskey_votesVote counts on poll options
_misskey_summaryProfile text in MFM
isCatCat mode

MFM (Misskey Flavored Markdown)​

Misskey uses its own markup, MFM:

$[x2 Large text]
$[sparkle ✨ Sparkle ✨]
$[spin Spinning text]
$[flip Flipped text]

The MFM source is federated in _misskey_content and source; content carries an HTML rendering.

API Endpoints​

GET /.well-known/webfinger
GET /.well-known/nodeinfo
GET /users/{id}
GET /notes/{id}
POST /inbox # shared inbox

See Also​