{ "$schema": "http://json-schema.org/draft-04/schema#", "id": "http://nodeinfo.diaspora.software/ns/schema/2.1#", "description": "NodeInfo schema version 2.1.", "type": "object", "additionalProperties": false, "required": [ "version", "software", "protocols", "services", "openRegistrations", "usage", "metadata" ], "properties": { "version": { "description": "The schema version, must be 2.1.", "enum": [ "2.1" ] }, "software": { "description": "Metadata about server software in use.", "type": "object", "additionalProperties": false, "required": [ "name", "version" ], "properties": { "name": { "description": "The canonical name of this server software.", "type": "string", "pattern": "^[a-z0-9-]+$" }, "version": { "description": "The version of this server software.", "type": "string" }, "repository": { "description": "The url of the source code repository of this server software.", "type": "string" }, "homepage": { "description": "The url of the homepage of this server software.", "type": "string" } } }, "protocols": { "description": "The protocols supported on this server.", "type": "array", "minItems": 1, "items": { "enum": [ "activitypub", "buddycloud", "dfrn", "diaspora", "libertree", "ostatus", "pumpio", "tent", "xmpp", "zot" ] } }, "services": { "description": "The third party sites this server can connect to via their application API.", "type": "object", "additionalProperties": false, "required": [ "inbound", "outbound" ], "properties": { "inbound": { "description": "The third party sites this server can retrieve messages from for combined display with regular traffic.", "type": "array", "minItems": 0, "items": { "enum": [ "atom1.0", "gnusocial", "imap", "pnut", "pop3", "pumpio", "rss2.0", "twitter" ] } }, "outbound": { "description": "The third party sites this server can publish messages to on the behalf of a user.", "type": "array", "minItems": 0, "items": { "enum": [ "atom1.0", "blogger", "buddycloud", "diaspora", "dreamwidth", "drupal", "facebook", "friendica", "gnusocial", "google", "insanejournal", "libertree", "linkedin", "livejournal", "mediagoblin", "myspace", "pinterest", "pnut", "posterous", "pumpio", "redmatrix", "rss2.0", "smtp", "tent", "tumblr", "twitter", "wordpress", "xmpp" ] } } } }, "openRegistrations": { "description": "Whether this server allows open self-registration.", "type": "boolean" }, "usage": { "description": "Usage statistics for this server.", "type": "object", "additionalProperties": false, "required": [ "users" ], "properties": { "users": { "description": "statistics about the users of this server.", "type": "object", "additionalProperties": false, "properties": { "total": { "description": "The total amount of on this server registered users.", "type": "integer", "minimum": 0 }, "activeHalfyear": { "description": "The amount of users that signed in at least once in the last 180 days.", "type": "integer", "minimum": 0 }, "activeMonth": { "description": "The amount of users that signed in at least once in the last 30 days.", "type": "integer", "minimum": 0 } } }, "localPosts": { "description": "The amount of posts that were made by users that are registered on this server.", "type": "integer", "minimum": 0 }, "localComments": { "description": "The amount of comments that were made by users that are registered on this server.", "type": "integer", "minimum": 0 } } }, "metadata": { "description": "Free form key value pairs for software specific values. Clients should not rely on any specific key present.", "type": "object", "minProperties": 0, "additionalProperties": true } } }