{ "lexicon": 1, "id": "com.atproto.server.describeServer", "description": "Endpoint that describes the core information and feature set of a server.", "defs": { "main": { "type": "query", "description": "Describes the service-agnostic metadata of the server. Includes reference to service-specific metadata.", "output": { "encoding": "application/json", "schema": { "type": "object", "required": ["did", "serverAgent", "serviceType"], "properties": { "did": { "type": "string", "format": "did" }, "serverAgent": { "type": "ref", "description": "Version information for the currently running server software.", "ref": "#version" }, "contact": { "type": "ref", "description": "Contact information for the service operator.", "ref": "#contact" }, "links": { "type": "ref", "description": "URLs of service policy documents.", "ref": "#links" }, "serviceType": { "type": "string", "knownValues": ["pds", "relay"] }, "serviceInfo": { "type": "union", "refs": ["#pdsMeta", "#relayMeta"], "closed": "open" } } } } }, "version": { "type": "object", "required": ["name", "revision"], "properties": { "name": { "type": "string", "description": "Name of server implementation" }, "revision": { "type": "string", "description": "Version number/revision of currently running server software" }, "source": { "type": "string", "format": "uri", "description": "Source code repository for implementation (if applicable)" }, "website": { "type": "string", "format": "uri", "description": "Home page for implementation" } } }, "contact": { "type": "object", "properties": { "email": { "type": "string" }, "username": { "type": "string", "format": "at-identifier" } } }, "links": { "type": "object", "properties": { "home": { "type": "string", "format": "uri", "description": "Home page of server host" }, "privacyPolicy": { "type": "string", "format": "uri", "description": "Privacy policy of server" }, "support": { "type": "string", "format": "uri", "description": "Support page of server" }, "termsOfService": { "type": "string", "format": "uri", "description": "Terms of service page of server" } } }, "pdsMeta": { "type": "object", "description": "PDS-specific metadata.", "properties": { "serviceName": { "type": "string", "description": "Name of the service." }, "serviceLogo": { "type": "string", "description": "A link to a logo or favicon that is associated with the PDS.", "format": "uri" }, "usage": { "type": "ref", "description": "Activity statistics for PDSes.", "ref": "#pdsUsage" }, "inviteCodeRequired": { "type": "boolean", "description": "If true, an invite code must be supplied to create an account on this instance." }, "phoneVerificationRequired": { "type": "boolean", "description": "If true, a phone verification token must be supplied to create an account on this instance." }, "availableUserDomains": { "type": "array", "description": "List of domain suffixes that can be used in account handles.", "items": { "type": "string" } }, "blobSizeLimit": { "type": "integer", "description": "Maximum size of a blob in bytes." } } }, "relayMeta": { "type": "object", "description": "Relay-specific metadata.", "properties": { "usage": { "type": "ref", "description": "Activity statistics for PDSes.", "ref": "#relayUsage" }, "openCrawling": { "type": "boolean", "description": "If true, new PDSes can be automatically crawled by the relay on request." }, "replayWindow": { "type": "integer", "description": "How long the relay stores old events for backfilling." } } }, "pdsUsage": { "type": "object", "properties": { "repos": { "type": "integer", "description": "Count of repositories/accounts registered to PDS." }, "records": { "type": "integer", "description": "Count of records stored across all repos on PDS." }, "blobs": { "type": "integer", "description": "Count of blobs stored across all repos on PDS." } } }, "relayUsage": { "type": "object", "description": "Activity statistics for relays.", "properties": { "hosts": { "type": "integer", "description": "Count of PDSes that have ever connected to the relay." }, "repos": { "type": "integer", "description": "Count of repositories/accounts known to the relay." } } } } }