Skip to content

Account Server (Switch)

Yannik Marchand edited this page Dec 24, 2023 · 36 revisions

Switch Servers > Nintendo Accounts

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 ?
Clone this wiki locally