API:Account creation/pre-1.27

Token
To create an account, a token is required. To retrieve a token, you make the request that you want, except with the token field being the empty string. Once you retrieve the token, you make the request again with the token filled in. This is similar to how the log in module works. See the example below for details.

Creating accounts
It will be possible to create accounts with action=createaccount after development of ApiCreateAccount.php is complete and the code is merged into the trunk. Presently, it does not work.

Parameters

 * : User name
 * : Password (ignored if  is set)
 * : Domain for external authentication (optional)
 * : Account creation token obtained in first request
 * : Email address of user (Optional unless mailpassword is set)
 * : Real name of user (Optional. Additionally many wikis have realname disabled via $wgHiddenPrefs)
 * : If set to any value, a random password will be generated and e-mailed to the user (instead of using the  parameter)
 * : Optional reason for creating the account. Will be shown in the account creation log (example). Note the reason field will only be recorded if the user is logged in to an account when using this module.
 * : Language code to set as default for the user

Example
Note: In this example, all parameters are passed in a GET request just for the sake of simplicity. However, action=createaccount requires POST requests; GET requests will cause an error.

We should now receive a response like:

We take the token given here, and add it to the request:

Assuming everything works, we should get a result like:

And GymBeauWhales@wikipmediawiki.net would get an email with instructions on how to log in.

Possible outputs
The result attribute can have one of three values:
 * needtoken: A token is needed. A token parameter should also be set with a token to use.
 * If you get a needtoken result when you are expecting a success result, make sure the token you are sending is correct, and that you are sending along any cookies sent by the API.
 * success: Everything worked
 * warning: Not used in core, however extensions can (in theory) add warnings, in which case the result attribute will be warning. However, this still generally means the account was created successfully.
 * warning: Not used in core, however extensions can (in theory) add warnings, in which case the result attribute will be warning. However, this still generally means the account was created successfully.
 * warning: Not used in core, however extensions can (in theory) add warnings, in which case the result attribute will be warning. However, this still generally means the account was created successfully.

Possible errors
All errors are formatted as: Many of the info codes to this module correspond to system messages. As a result the info part may change and in particular will vary with language.


 * code: nocookiesfornew
 * info: The user account was not created, as we could not confirm its source. Ensure you have cookies enabled, reload this page and try again.
 * note: This code is sometimes returned due to a bug in early versions of MediaWiki 1.21. If you receive this error, retrying the request again (ensuring cookies are sent) should fix.
 * code: sorbs_create_account_reason
 * info: Your IP address is listed as an open proxy in the DNSBL.
 * code: noname
 * info: You have not specified a valid username
 * code: userexists
 * info: Username entered already in use
 * code: password-name-match
 * info: Your password must be different from your username.
 * code: password-login-forbidden
 * info: The use of this username and password has been forbidden
 * code: noemailtitle
 * info: No email address
 * code: invalidemailaddress
 * info: The e-mail address cannot be accepted as it appears to have an invalid format
 * code: externaldberror
 * info: There was either an authentication database error or you are not allowed to update your external account
 * code: passwordtooshort
 * info: The password was shorter than the value of $wgMinimalPasswordLength
 * code: noemail
 * info: There is no e-mail address recorded for user
 * code: mustbeposted
 * info: The createaccount module requires a POST request
 * code: acct_creation_throttle_hit
 * info: Visitors to this wiki using your IP address have created $1 accounts in the last day, which is the maximum allowed in this time period. As a result, visitors using this IP address cannot create any more accounts at the moment.
 * code: wrongpassword
 * info: Incorrect password entered. Please try again.
 * note: Can be caused by the "domain" field being incorrect.
 * code: aborted
 * aborted by an extension (info will have more details)
 * code: blocked
 * info: You cannot create a new account because you are blocked
 * code: permdenied-createaccount
 * info: You do not have the right to create a new account

Disable
To disable specificaly this API feature, insert the following line in your configuration file: