Spl3 API: Salmon - Post - fetus-hina/stat.ink GitHub Wiki
not detailed, for stat.ink API profreshionals:
Endpoint URL: https://stat.ink/api/v3/salmon
Request Method: POST
or PUT
Authorization: Required, HTTP Header bearer auth only
Content-Type: application/x-msgpack
or application/json
name | type | example | info |
---|---|---|---|
test |
boolean | "no" |
If "yes" , validation only. Defaults to "no"
|
uuid |
uuid-string | "b771b3dc-b50d-445b-97cd-a59e9cca541c" |
UUID to identify the job on the client side. See here for the recommended calculation method when creating on the basis of data obtained from SplatNet 3. Be careful: Calculation method differs from battle |
private |
boolean | "no" |
"Is Private Job" flag. Set "yes" when played a private job, otherwise send "no" . (Do not omit) |
big_run |
boolean | "no" |
"Is Big Run" flag. Set "yes" when played a Big Run, otherwise send "no" . (Do not omit this flag) |
eggstra_work |
boolean | "no" |
"Is Eggstra Work" flag. Set "yes " when played an Eggstra Work. Defaults to "no " |
stage |
key-string | "meuniere" |
https://stat.ink/api-info/stage3 Send Salmon Run stage key ( big_run = "no" ).Send VS-stage key ( big_run = "yes" ) |
danger_rate |
number [0, 333.3]
|
123.4 |
Send 123.4 for 123.4% (Not Verified: Send null for Eggstra Work) |
clear_waves |
integer [0, 3]
|
3 |
0 = Failed in Wave13 = Normal waves clearedThe result of the Xtra wave (King Salmonid's wave) is not relevant here. For Eggstra Work, you can send [0, 5]
|
fail_reason |
key-string | "wipe_out" |
"wipe_out" : Wipe out"time_limit" : Time is upnull : Cleared/Unknown |
king_smell |
integer [0, 5]
|
5 |
Salmometer (ja:オカシラゲージ) |
king_salmonid |
key-string | "yokozuna" |
https://stat.ink/api-info/boss-salmonid3 If it appeared, then the key-string of King Salmonid. If it did not appear, then null or unset |
clear_extra |
boolean | "no" |
Set "yes" if killed the King.Set "no" if you defeat or timed up.Set null or unset otherwise (i.e., the King not appeared) |
title_before |
key-string | "profreshional_0" |
https://stat.ink/api-info/salmon-title3 Probably not getting exact data if you are getting from SplatNet 3 |
title_exp_before |
integer [0, 999]
|
40 | Profreshional 40/99 |
title_after |
key-string | "profreshional_0" |
|
title_exp_after |
integer [0, 999]
|
60 | Profreshional 60/99 |
golden_eggs |
integer | 123 |
Number of Golden Eggs collected by all members |
power_eggs |
integer | 2345 |
Number of Power Eggs (normal eggs) collected by all members |
gold_scale |
integer | 0 |
Number of gold scales obtained |
silver_scale |
integer | 1 |
Number of silver scales obtained |
bronze_scale |
integer | 9 |
Number of bronze scales obtained |
job_point |
integer | 121 |
job_point = job_score x job_rate + job_bonus (see the image)![]() |
job_score |
integer | 53 |
|
job_rate |
number | 2.29 |
|
job_bonus |
integer | 0 |
maybe one of 0 , 50 or 100
|
waves |
array<Wave struct> (1-4 elements) | [{"tide": "low", ...}, ...] |
Waves information. The 4th element is Xtra Wave. For Eggstra Work, you can send 5 elements |
players |
array<Player struct> (1-4 elements) | [{"name": "...", ...}, ...] |
Players information. Typ. 4 elements |
bosses |
map<key-string, Boss-struct> | (see example) | Boss appearances and defeated key-string: https://stat.ink/api-info/boss-salmonid3 |
note |
string | public note | |
private_note |
string | private note | |
link_url |
http-url-string | https://example.com/ |
IDN is not allowed, it will be public |
agent |
string (1 ≤ length ≤ 64) | "the super client" |
your client name (see the Battle API for details) |
agent_version |
string (1 ≤ length ≤ 255) | "v1.0.0" |
its version |
agent_variables |
map<string, string> (1 ≤ len(key) ≤ 63) (1 ≤ len(value) ≤ 255) |
{"foo": "blablabla"} |
Extra data by UA |
automated |
boolean | "yes" |
Set "yes" if the client is operating in automatic mode.Otherwise, set "no"
|
start_at |
unix-time | 1599577200 |
the job starts at |
end_at |
unix-time | 1599577380 |
the job ends at |
name | type | example | info |
---|---|---|---|
tide |
key-string | "low" |
Water level, high , normal or low
|
event |
key-string | "cohock_charge" |
https://stat.ink/api-info/salmon-event3 For normal wave, set null or unset |
danger_rate |
number [0.0, 333.3] | 123.4 |
Only for Eggstra Work. Set null for other modes |
golden_quota |
integer | 23 |
Golden Eggs quota (ja:ノルマ) Set null for Xtra Wave |
golden_delivered |
integer | 24 |
Golden Eggs delivered (ja:納品数) Set null for Xtra Wave |
golden_appearances |
integer | 45 |
Golden Eggs appearances |
special_uses |
map<key-string, integer> | {"sameride": 2, "nicedama": 1} |
Special weapon used in this wave https://stat.ink/api-info/weapon3 (Special) |
name | type | example | info |
---|---|---|---|
me |
boolean | "yes" |
set "yes" if the player is "current" user. otherwise, set "no" . |
name |
string (1 ≤ length ≤ 10) | "なぎさのこあくま" |
the player's name |
number |
string | "1112" |
#1112 in splashtag. Do not send # . Be careful this value is not always integer (may contains alphabet). We will accept /^[0-9a-zA-Z]{0,32}$/ at this time. |
splashtag_title |
string | "アゲアゲのルーキー" |
title in splashtag, localized & joined |
uniform |
key-string | "orange" |
https://stat.ink/api-info/salmon-uniform3 |
special |
key-string | "nicedama" |
https://stat.ink/api-info/weapon3 (Special) |
weapons |
array<key-string> (1-5 elements) | ["wakaba", "splatcharger", "splatroller", "bold"] |
Loaned weapon for each wavenull for unknownhttps://stat.ink/api-info/weapon3 |
golden_eggs |
integer | 14 |
Golden Eggs delivered |
golden_assist |
integer | 8 |
Golden Eggs touched then delivered it by another player |
power_eggs |
integer | 1015 |
Power Eggs collected |
rescue |
integer | 2 |
The player rescues other players |
rescued |
integer | 1 |
The player rescued by other player (Close to death count) |
defeat_boss |
integer | 5 |
The player 5 kills the Boss Salmonids in this example |
disconnected |
boolean | "no" |
set "yes" if the player disconnected. otherwise, set "no" . |
species |
key-string | "inkling" |
"inkling" or "octoling"
|
name | type | example | info |
---|---|---|---|
appearances |
integer | 5 |
Number of appearances |
defeated |
integer | 3 |
Total number killed by all players |
defeated_by_me |
integer | 1 |
Number killed by the player |
appearances
≥ defeated
≥ defeated_by_me
≥ 0

{
"bosses": {
"bakudan": { // Steelhead
"appearances": 5,
"defeated": 3,
"defeated_by_me": 0
},
"katapad": null, // OK, means no Flyfish appearances
// or unset the key also means no appearances
"mogura": { // Also OK, means no Maws appearances
"appearances": 0, // can be zero
"defeated": 0,
"defeated_by_me": 0
},
}
}
-
range (like
[1, 4]
): See this -
boolean:
"yes"
or"no"
. Be careful - it is not a native boolean type, it is a string. (Note: internally, it accepts native boolean value, but the MsgPack library does not support them.) -
http-url-string: HTTP or HTTPS URL. IDN (Internationalized Domain Names) are not supported. It might work if Punycode encode is done on the client side.
-
unix-time: integer, seconds from 1970-01-01T00:00:00+00:00 without leap seconds. Be careful if the client using JavaScript -- its time unit is milliseconds, so it must be 1/1000.
-
uuid-string: case insensitive string(lowercase recommended),
"00000000-0000-M000-N000-000000000000"
format, version 1, 3, 4 or 5 is required (M=1, 3, 4, 5). RFC 4122 variant is required (N=8, 9, a, b).
When posting to stat.ink from data obtained from SplatNet, we expect the following method to generate a uuid.
This method IS DIFFERENT with the Battle API.
- decode Base64'ed ID from
coopHistoryDetail.id
("CoopHistoryDetail-u-..."
) - Calc UUIDv5 with namespace
f1911910-605e-11ed-a622-7085c2057a9d
$theUUID = uuid_v5(
base64_decode($history->id),
uuid_from_string('f1911910-605e-11ed-a622-7085c2057a9d'),
);