So, you’ve decided to write a crawler to collect metadata about Fediverse servers for your humble little catalog? Great! Let’s dive into this menagerie while you still have the motivation to do anything at all.
According to the spec, you can get metadata from /.well-known/nodeinfo, which contains a link to something like
/nodeinfo/2.0. But here’s the catch! Different engines provide different information there, and Mastodon’s is as minimal as it gets.
It turns out that, in addition to the general specification, each engine offers its own endpoint for getting metadata.
The /api/v1/instance from the Mastodon API has become widespread, but of course, it’s not available everywhere.
Let’s go!
Mastodon
/nodeinfo/2.0/api/v1/instance/api/v1/custom_emojis/api/v1/directory?local=true
Pleroma
/nodeinfo/2.1.json/api/v1/instance/api/pleroma/healthcheck(has to be enabled)
Misskey
/nodeinfo/2.0- That’s a tricky one: POST request to
/api/metawith body{"detail":true} - POST request to
/api/stats, empty body
Funkwhale
/api/v1/instance/nodeinfo/2.0/api/v1/instance/settings
Pixelfed
/api/nodeinfo/2.0.json/api/v1/instance
PeerTube
/nodeinfo/2.0.json/api/v1/config/api/v1/config/about
Friendica
/nodeinfo/2.0/api/statusnet/config/api/v1/instance/friendica/json
Nextcloud
- /status.php
- ??? Such a clusterfuck
Thanks to Michael Vogel for providing Friendica endpoints.
Thanks for reading my blog post.