{
"lexicon": 1,
"id": "com.atproto.server.createAccount",
"defs": {
"main": {
"type": "procedure",
"description": "Create an account. Implemented by PDS.",
"input": {
"encoding": "application/json",
"schema": {
"type": "object",
"required": ["handle"],
"properties": {
"email": { "type": "string" },
"handle": {
"type": "string",
"format": "handle",
"description": "Requested handle for the account."
},
"did": {
"type": "string",
"format": "did",
"description": "Pre-existing atproto DID, being imported to a new account."
},
"inviteCode": { "type": "string" },
"verificationCode": { "type": "string" },
"verificationPhone": { "type": "string" },
"password": {
"type": "string",
"description": "Initial account password. May need to meet instance-specific password strength requirements."
},
"recoveryKey": {
"type": "string",
"description": "DID PLC rotation key (aka, recovery key) to be included in PLC creation operation."
},
"plcOp": {
"type": "unknown",
"description": "A signed DID PLC operation to be submitted as part of importing an existing account to this instance. NOTE: this optional field may be updated when full account migration is implemented."
}
}
}
},
"output": {
"encoding": "application/json",
"schema": {
"type": "object",
"description": "Account login session returned on successful account creation.",
"required": ["accessJwt", "refreshJwt", "handle", "did"],
"properties": {
"accessJwt": { "type": "string" },
"refreshJwt": { "type": "string" },
"handle": { "type": "string", "format": "handle" },
"did": {
"type": "string",
"format": "did",
"description": "The DID of the new account."
},
"didDoc": {
"type": "unknown",
"description": "Complete DID document."
}
}
}
},
"errors": [
{ "name": "InvalidHandle" },
{ "name": "InvalidPassword" },
{ "name": "InvalidInviteCode" },
{ "name": "HandleNotAvailable" },
{ "name": "UnsupportedDomain" },
{ "name": "UnresolvableDid" },
{ "name": "IncompatibleDidDoc" }
]
}
}
}