This Japanese app gets delisted from eShop on 14 April 2021, so I got bored and decided to nose at it since it's free.
When booting the app, it ensures that you have the correct time for JST, by sending a POST to https://beyblade.takaratomy.co.jp/api/3ds/v1.0/_is_time_correct
with the following form-data attributes:
APP_TOKEN application/octet-stream <64 char string>
RID application/octet-stream <8 char string>
UT application/octet-stream 1618002522
APP_TOKEN is likely sent via NASC or NEX, with RID unknown (both do change between session), and UT being a Unix Timestamp. The server responds with the following JSON, either true or false:
{
"status": 0,
"is_time_correct": true
}
It seems the game won't let you do.. something? Probably play the game without time being correct since you only get 3 free plays a day.
When trying to login with an ID, you can sign up on 3DS; this opens the regular Web Browser to https://beyblade.takaratomy.co.jp/3ds/signup (this URL has been archived), and is a pretty typical sign up page.
When signing in, the user POSTs the 3 headers from above along with "email" and "password" to https://beyblade.takaratomy.co.jp/api/3ds/v1.0/_web_login - the status code 0 is success with 950 seeming to mean incorrect details.
{
"status": 950,
"error_title": "\u30ed\u30b0\u30a4\u30f3\u30a8\u30e9\u30fc",
"error_message": "\u30ed\u30b0\u30a4\u30f3ID\u304b\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002\n\u3082\u3046\u4e00\u5ea6\u3084\u308a\u76f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002[DI030]"
}
However, if correct, it returns some more information along with status 0:
{
"status": 0,
"beylogger_status": 10,
"ukey": "SESSION_TOKEN",
"chara_icon": 1,
"params": {
"NM": "USERNAME",
"PID": null
}
}
This ukey is POSTed along with the 3 device headers mentioned before to https://beyblade.takaratomy.co.jp/api/3ds/v1.0/_get_blader_info with the response (Actual numbers censored so I don't get my 3DS banned)
{
"status": 0,
"blader_title": "\u3055\u3059\u3089\u3044\u306e\u30d6\u30ec\u30fc\u30c0\u30fc",
"NM": "USERNAME",
"total_beypoint": 0,
"beypoint": 0,
"mr1": 0,
"pav": 0,
"st": 0,
"total_beypoint_avg": 0,
"beypoint_avg": 0,
"mr1_avg": 0,
"wav": 0,
"st_avg": 0,
"badge_count": 0
}
The news API seems to no longer work, only giving {"status":0,"news":[]}
- I have no clue how this would've worked, but there is a dedicated News button in the app.
You can also exchange Beyblade points earned in the free plays for battle points (for use on other platforms? No clue) - to do this, it POSTs ukey+device headers to https://beyblade.takaratomy.co.jp/api/3ds/v1.0/_add_3ds_point along with DSPT: 10
or some integer; {"status":0}
is the valid response.