{ "lexicon": 1, "id": "com.atproto.server.createSession", "defs": { "main": { "type": "procedure", "description": "Create an authentication session.", "input": { "encoding": "application/json", "schema": { "type": "object", "required": [ "identifier", "password" ], "properties": { "allowTakendown": { "type": "boolean", "description": "When true, instead of throwing error for takendown accounts, a valid response with a narrow scoped token will be returned" }, "authFactorToken": { "type": "string" }, "identifier": { "type": "string", "description": "Handle or other identifier supported by the server for the authenticating user." }, "password": { "type": "string" } } } }, "output": { "encoding": "application/json", "schema": { "type": "object", "required": [ "accessJwt", "refreshJwt", "handle", "did" ], "properties": { "accessJwt": { "type": "string" }, "active": { "type": "boolean" }, "did": { "type": "string", "format": "did" }, "didDoc": { "type": "unknown" }, "email": { "type": "string" }, "emailAuthFactor": { "type": "boolean" }, "emailConfirmed": { "type": "boolean" }, "handle": { "type": "string", "format": "handle" }, "refreshJwt": { "type": "string" }, "status": { "type": "string", "description": "If active=false, this optional field indicates a possible reason for why the account is not active. If active=false and no status is supplied, then the host makes no claim for why the repository is no longer being hosted.", "knownValues": [ "takendown", "suspended", "deactivated" ] } } } }, "errors": [ { "name": "AccountTakedown" }, { "name": "AuthFactorTokenRequired" } ] } } }