{
"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": {
"identifier": {
"type": "string",
"description": "Handle or other identifier supported by the server for the authenticating user."
},
"password": { "type": "string" },
"authFactorToken": { "type": "string" },
"allowTakendown": {
"type": "boolean",
"description": "When true, instead of throwing error for takendown accounts, a valid response with a narrow scoped token will be returned"
}
}
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["accessJwt", "refreshJwt", "handle", "did"],
"properties": {
"accessJwt": { "type": "string" },
"refreshJwt": { "type": "string" },
"handle": { "type": "string", "format": "handle" },
"did": { "type": "string", "format": "did" },
"didDoc": { "type": "unknown" },
"email": { "type": "string" },
"emailConfirmed": { "type": "boolean" },
"emailAuthFactor": { "type": "boolean" },
"active": { "type": "boolean" },
"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" }
]
}
}
}