Possible URL formats:
https://npdl.cdn.nintendowifi.net/p01/nsa/:appID/:taskID/:fileName
https://npdl.cdn.nintendowifi.net/p01/nsa/:appID/:taskID/:languageCode/:fileName
https://npdl.cdn.nintendowifi.net/p01/nsa/:appID/:taskID/:countryCode/:languageCode/:fileName
This server allows users to download files available on BOSS with a given App ID, Task ID and filename. This is used by most SpotPass games for receiving content.
A task ID may enforce usage of country or language on the path, in which case the server will return a 404 if they aren't provided. The country can't be enforced alone. If none of them are enforced by the task, the server will not validate the values given for them when trying to request a file.
Examples:
https://npdl.cdn.nintendowifi.net/p01/nsa/3vveLadT8H6xKkQH/RNG_EC1/1.dlp
https://npdl.cdn.nintendowifi.net/p01/nsa/ZBq1ITue8b9aw64j/NEWS/es/NEWS
https://npdl.cdn.nintendowifi.net/p01/nsa/UrXSeurnxhPrq7AS/sysmsg1/ES/es/sysmsg1
A request may contain some parameters which are added by the BOSS sysmodule if certain conditions are met.
Parameter | Description |
---|---|
ap |
Nintendo Zone AP |
tm |
System model |
The BOSS sysmodule can also store the date when the last update to a file was requested, which is used for caching by setting the If-Modified-Since
header.
The response is a custom BOSS-encrypted file, which has the the file contents on it.
If the app ID, the task ID or the filename are invalid, the server will return a 404.
HTTP headers:
HTTP/1.1 200 OK
Content-Type: application/octet-stream
Server: nginx
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: strict-origin-when-cross-origin
Last-Modified: Fri, 17 Mar 2023 01:40:00 GMT
Accept-Ranges: bytes
Content-Disposition: attachment
Content-Transfer-Encoding: binary
X-Request-Id: 5f316058-b8cf-4599-bfe9-deeae0292818
X-Runtime: 0.783194
X-Content-Type-Options: nosniff
Content-Length: 5782
Cache-Control: private, max-age=600
Date: Fri, 10 Nov 2023 19:02:35 GMT
Connection: keep-alive
The Last-Modified
date of a file doesn't exactly match the updated time that is returned on the filelist. This probably means that the BOSS servers start delivering the files to users some time after it has been uploaded to BOSS.
The response may also include a X-BOSS-Closed
header, for which the BOSS sysmodule will return an error internally, reporting the content discontinuation.
Example value for Swapnote / Nintendo Letter Box: X-BOSS-Closed: Fri, 01 Nov 2013 02:00:00 GMT