{
  "lexicon": 1,
  "id": "com.atproto.server.describeServer",
  "defs": {
    "contact": {
      "type": "object",
      "properties": {
        "email": {
          "type": "string"
        }
      }
    },
    "links": {
      "type": "object",
      "properties": {
        "privacyPolicy": {
          "type": "string",
          "format": "uri"
        },
        "termsOfService": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "main": {
      "type": "query",
      "description": "Describes the server's account creation requirements and capabilities. Implemented by PDS.",
      "output": {
        "encoding": "application/json",
        "schema": {
          "type": "object",
          "required": [
            "did",
            "availableUserDomains"
          ],
          "properties": {
            "availableUserDomains": {
              "type": "array",
              "description": "List of domain suffixes that can be used in account handles.",
              "items": {
                "type": "string"
              }
            },
            "contact": {
              "type": "ref",
              "description": "Contact information",
              "ref": "#contact"
            },
            "did": {
              "type": "string",
              "format": "did"
            },
            "inviteCodeRequired": {
              "type": "boolean",
              "description": "If true, an invite code must be supplied to create an account on this instance."
            },
            "links": {
              "type": "ref",
              "description": "URLs of service policy documents.",
              "ref": "#links"
            },
            "phoneVerificationRequired": {
              "type": "boolean",
              "description": "If true, a phone verification token must be supplied to create an account on this instance."
            }
          }
        }
      }
    }
  }
}