This server is responsible for Nintendo accounts. Nintendo accounts are created off-device, and are required to use Nintendo Switch online services, including the eShop. For more information on Nintendo accounts, check out Nintendo’s support page.
The API takes form-encoded requests and responds with json-encoding.
Website
The website can be visited in a web browser at https://accounts.nintendo.com. Static assets, such as css and javascript files are hosted on https://cdn.accounts.nintendo.com.
On this website, one can either create a Nintendo account directly, or create a Nintendo account from a Facebook, Google, Twitter or Apple account. A Nintendo account contains basic profile information, such as nickname and birthday, but also many more advanced features such as two-factor authentication and family groups.
Headers
| Header | Description |
|---|---|
| Host | accounts.nintendo.com |
| User-Agent | User agent |
| Accept | */* |
| Content-Length | Content length |
| Content-Type | application/x-www-form-urlencoded |
User Agents
For browser requests made during authorization:
| System Version | User agent |
|---|---|
| 13.1.0 - 13.2.1 | Mozilla/5.0 (Nintendo Switch; LoginApplet; Nintendo Switch) AppleWebKit/606.4 (KHTML, like Gecko) NF/6.0.1.19.3 NintendoBrowser/5.1.0.21761 |
| 15.0.1 | Mozilla/5.0 (Nintendo Switch; LoginApplet; Nintendo Switch) AppleWebKit/609.4 (KHTML, like Gecko) NF/6.0.2.21.5 NintendoBrowser/5.1.0.22497 |
For API requests made by the account sysmodule:
| System Version | User agent |
|---|---|
| 9.0.0 - 9.2.0 | libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 9.3.0.0; Add-on 9.3.0.0) |
| 10.0.0 - 10.2.0 | libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 10.4.0.0; Add-on 10.4.0.0) |
| 11.0.0 - 11.0.1 | libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 11.4.0.0; Add-on 11.4.0.0) |
| 12.0.0 - 12.1.0 | libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 12.3.0.0; Add-on 12.3.0.0) |
| 13.0.0 | libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 13.3.0.0; Add-on 13.3.0.0) |
| 13.1.0 - 13.2.1 | libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 13.4.0.0; Add-on 13.4.0.0) |
| 14.0.0 - 14.1.2 | libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 14.3.0.0; Add-on 14.3.0.0) |
| 15.0.0 - 15.0.1 | libcurl (nnAccount; 789f928b-138e-4b2f-afeb-1acae821d897; SDK 15.3.0.0; Add-on 15.3.0.0) |
Methods
accounts.nintendo.com:
| Method | URL |
|---|---|
| GET | /api/1.0.0/users/<id>/qrcode_param |
| GET | /connect/1.0.0/authorize |
| POST | /connect/1.0.0/api/token |
| GET | /connect/1.0.0/authorize/supervisor_consent |
| GET | /profile |
api.accounts.nintendo.com:
| Method | URL |
|---|---|
| GET | /2.0.0/users/me |
GET /connect/1.0.0/authorize
This method accepts OAuth 2 authorization requests. The following parameters may be provided in addition to standard OAuth parameters:
| Param | Description |
|---|---|
| theme | register, intro, email_authentication or simple_authenticate |
The Switch always requests the scope nx.
POST /connect/1.0.0/api/token
This method accepts OAuth 2 token requests. The following parameters may be provided in addition to standard OAuth parameters:
| Param | Description |
|---|---|
| device_authentication_token | Device token |
The Switch requests the scope openid offline napps urn:oauth:init-sso user user.birthday user.email user.links user.links[].id user.loginId user.screenName user.terms.
Known Client IDs
| Client ID | Name | Redirect URI |
|---|---|---|
6ffd70c434d303c8 | NxAccount | nintendo://account.nx.sys |
e56201e414c97a10 | NxShop | nintendo://shop.nx.sys |
57d3dbaa12cb06a9 | NxFriends | nintendo://friends.nx.sys |
48d6d1f020427ad7 | NxELicense | nintendo://e-license.nx.sys |
f4e5f2f3e022208b | NxLHub | nintendo://lhub.nx.sys |
Errors
On error, the server sends the following response:
| Field | Description |
|---|---|
| error | Error name |
| error_description | Error description |
| error_detail | Error details (optional) |
Known Errors
/2.0.0/users/me and /api/1.0.0/users/<id>/qrcode_param:
| Name | Description |
|---|---|
| invalid_token | ? |
| insufficient_scope | ? |
| under_maintenance | ? |
/connect/1.0.0/api/token:
| Name | Detail | Description |
|---|---|---|
| invalid_request | The request does not satisfy the schema | |
| invalid_client | Client authentication failed | |
| invalid_grant | ? | |
| invalid_grant | user_deleted | ? |
| invalid_grant | user_banned | ? |
| invalid_grant | user_suspended | ? |
| invalid_grant | user_withdrawn | ? |
| invalid_grant | user_terms_agreement_required | ? |
| invalid_scope | ? | |
| invalid_scope | scope_token_unknown | The requested scope is invalid |
| invalid_scope | scope_token_prohibited | ? |
| invalid_scope | scope_token_not_authorized | ? |
| unauthorized_client | ? | |
| unsupported_grant_type | ? | |
| server_error | ? | |
| under_maintenance | ? |
Others:
| Name | Detail | Description |
|---|---|---|
| unauthorized_client | ? | |
| access_denied | ? | |
| access_denied | id_token_hint_invalid | ? |
| access_denied | user_deleted | ? |
| invalid_scope | ? | |
| invalid_scope | scope_token_unknown | ? |
| invalid_scope | scope_token_prohibited | The requested scope is not authorized |
| server_error | ? | |
| login_required | ? | |
| login_required | user_not_logged_in | ? |
| login_required | user_different_from_id_token_hint | ? |
| consent_required | ? | |
| interaction_required | ? | |
| interaction_required | user_banned | ? |
| interaction_required | user_suspended | ? |
| interaction_required | user_terms_agreement_required | ? |
| under_maintenance | ? |