What Is NodeInfo?

NodeInfo is an open protocol that allows federated social network nodes to expose standardized metadata about themselves. Using the NodeInfo specification, any interested party — another server, a researcher, a monitoring tool — can discover what software a server runs, which protocols it supports, and basic usage statistics.

It follows the .well-known pattern: a discovery document at /.well-known/nodeinfo points to one or more versioned NodeInfo documents, currently at schema versions 2.0 and 2.1.

The Two-Step Discovery Pattern

NodeInfo uses a two-step lookup to allow servers to host the actual data document at any URL:

Step 1: The .well-known Discovery Document

GET /.well-known/nodeinfo

{
  "links": [
    {
      "rel": "http://nodeinfo.diaspora.software/ns/schema/2.1",
      "href": "https://example.com/nodeinfo/2.1"
    }
  ]
}

Step 2: The NodeInfo Document

GET /nodeinfo/2.1

{
  "version": "2.1",
  "software": {
    "name": "mastodon",
    "version": "4.2.1",
    "repository": "https://github.com/mastodon/mastodon",
    "homepage": "https://joinmastodon.org"
  },
  "protocols": ["activitypub"],
  "usage": {
    "users": {
      "total": 1500,
      "activeMonth": 320,
      "activeHalfyear": 780
    },
    "localPosts": 45000
  },
  "openRegistrations": false
}

Key Fields in NodeInfo 2.1

FieldDescription
software.nameThe software identifier (e.g., mastodon, misskey, pleroma)
software.versionThe running version — useful for security scanning
protocolsSupported federation protocols: activitypub, diaspora, zot6, etc.
usage.users.totalTotal registered user count
usage.users.activeMonthMonthly active users
openRegistrationsWhether new accounts can be created

Tools for Querying and Mapping the Fediverse

NodeInfo powers a range of tools that aggregate data across the federated web:

Fediverse Observer

fediverse.observer crawls thousands of federated instances, using NodeInfo to collect software types, user counts, and uptime data. It provides searchable directories filtered by protocol, software, and language.

FediDB

fedidb.org offers statistics on Fediverse growth over time, software distribution, and protocol adoption — all sourced from NodeInfo endpoints across the network.

instances.social

This Mastodon instance directory uses NodeInfo data to help new users find communities that match their interests, language, and openness to registration.

Custom Crawling with curl

You can manually inspect any federated server's NodeInfo with basic tools:

# Step 1: Get discovery document
curl https://mastodon.social/.well-known/nodeinfo

# Step 2: Fetch the actual NodeInfo document
curl https://mastodon.social/nodeinfo/2.1

Privacy Considerations

NodeInfo exposes user counts and activity metrics. While this is aggregate data, server operators should be thoughtful about what they expose. Some considerations:

  • Small communities — On servers with very few users, aggregate stats may allow individual identification
  • Version disclosure — Publishing exact software versions can help attackers target unpatched instances
  • OpenRegistrations flag — Setting this accurately helps prevent spam account creation targeting open servers

Some server administrators choose to omit or round user count figures while still providing software and protocol information.

Implementing NodeInfo on Your Server

If you're building a custom federated application, implementing NodeInfo is straightforward:

  1. Create a static or dynamic JSON document following the NodeInfo 2.1 schema
  2. Serve it at a path like /nodeinfo/2.1
  3. Create the discovery document at /.well-known/nodeinfo pointing to it
  4. Register your software identifier in the NodeInfo software list if it's a new platform

NodeInfo is a low-effort, high-value addition to any federated service — it makes your server discoverable, monitorable, and part of the broader Fediverse ecosystem's data landscape.