SSherder API

Access Controls:
  • Read Only: Everyone

If you want to use this data for your own application, please cache the data locally. Check the news section for updates regarding data API changes, they'll usually only occur every few weeks/months to update game data.

A common field in these endpoints is the "base_character" field, this is basically the base ID of a character. For example, the character Sam has three forms (10101, 20101, 30101), one for each evolution, therefore there's three character objects for him, but they all share the same base_character object (10101). The base_character ID is used for tracking chains, evolutions, skins and some other common stuff.

All data is returned as JSON. Some endpoints return very large datasets, viewing them in-browser might result in a short freeze.

Endpoint Description Example
/data-api/chains/ Returns an array of chains, includes each chain mission and its base character IDs of main and sub group. ID of chain can be safely assumed to be equal
[
    {
        "id": 10101,
        "chain_missions": [
            {
                "effect": "Friendship",
                "target": 10,
                "base_characters": [10110, 12210, 13215],
                "base_characters_sub": [10104, 12207]
            },
            {
                "effect": "Competition",
                "target": 10,
                "base_characters": [10114, 10107, 10123, 10126],
                "base_characters_sub": []
            },
            ...
        ]
    },
    ...
]
                            
/data-api/characters/

Returns an array of characters.

NOTE: Skills may not be ordered in the way they are in-game, working on it

[
    {
        "id": 13131,
        "image_id": 13131,
        "base_character": 13131,
        "name": "White Guardenia",
        "cost": 15,
        "element": "Light",
        "gender": "Female",
        "rarity": 5,
        "category": "Player",
        "role": "Assist",
        "season": 2,
        "stones": [
            "Light",
            "Ardor",
            "Whirlwind"
        ],
        "min_pow": 33,
        "min_tec": 53,
        "min_vit": 59,
        "min_spd": 33,
        "max_pow": 93,
        "max_tec": 146,
        "max_vit": 164,
        "max_spd": 93,
        "story": "Her name destined her to become the executer of justice...",
        "weather_immunity": "Piercing Wind",
        "illustrator": 10,
        "voice_actor": 25,
        "is_legend": false,
        "is_special": true,
        "skills": [
            13131,
            113131,
            631,
            633,
            632
        ]
    },
    ...
]
                            
/data-api/consecutive-achievements/

Returns an array of consecutive achievements. The "initial" field is the ID of the first achievement in a particular set of achievements, while the "unlocks" field is the next achievement in the set.

NOTE: The "reward_amount" isn't particularly helpful in some cases, if the "reward" field is "Character Box" or "Spirit Stone Box", the "reward_amount" references a Drop object, which is something I haven't gotten around to including in the API.

[
    {
        "id": 1001,
        "name": "New Soccer Team 1",
        "description":"Win 5 times in Free Match or Space-Time Continuum",
        "label": "",
        "target": 5,
        "reward": "Gold",
        "reward_amount": 10000,
        "unlocks": 1002,
        "initial":​1001
    },
    ...
]
                            
/data-api/illustrators/ Returns an array of illustrators, includes the characters and skins illustrated by each illustrator.
[
    {
        "id": 10,
        "english_name": "Snowball",
        "korean_name": "스노우볼",
        "character_illustrator": [
            13131,
            23131,
            ...
        ],
        "skin_illustrator": [ ]
    },
    ...
]
                            
/data-api/materials/ Returns an array of material-type characters (used in evolutions), includes how many evolutions it's found in and the total amount needed for all evolutions.
[
    {
        "character_sum": 9,
        "evolution_count": 3,
        "character": 14810
    },
    ...
]
                            
/data-api/skins/ Returns an array of character skins.
[
    {
        "id": 510101,
        "base_character": 10101,
        "crystal_cost":​0,
        "discount_crystal_cost":​0,
        "discount_ds_cost":​0,
        "discount_start_day": "0",
        "discount_end_day": "0",
        "ds_cost": 0,
        "gender": "Male",
        "illustrator": 34,
        "image_id": 510101,
        "is_on_sale": true,
        "luck_increase": 5,
        "name": "Fever Sam",
        "sound_change": false,
        "stat_increase": 2,
        "voice_actor":​5
    },
    ...
]
                            
/data-api/skills/

Returns an array of skills.

[
    {
        "id": 33124,
        "name": "Guardian Through III",
        "description":​"[Pass] Recovers the target’s action bar by {1}% and increases the pass effect the target receives by {0}% and the target’s attack power by {2}%.",
        "icon":​"active_4001",
        "accumable":​false,
        "accumable_to": null,
        "category": "active",
        "cooldown": 10,
        "cooldown_initial": 0,
        "cooldown_growth": 0,
        "duration": 0,
        "effects": [
            [
                "44.000",
                "20.000",
                "5.000",
                null
            ],
            [
                "26.000",
                "100.000",
                "0.000",
                null
            ],
            [
                "57.000",
                "30.000",
                "7.500",
                null
            ]
        ],
        "spirit_cost": 5
    },
    ...
]
                            
/data-api/stones/ Returns an array of spirit stones.
[
    {
        "id": 426703,
        "element": "Thunder",
        "icon": "Electric_U6_003",
        "name": "Glabaris",
        "rarity": 7,
        "type": "Unique",
        "zodiac": "",
        "evolves_to": null,
        "skills": [
            ​7061
        ]
    },
    ...
]
                            
/data-api/voice-actors/ Returns an array of voice actors, includes the characters and skins voice acted by each voice actor.
[
    {
        "id": 0,
        "english_name": "없음",
        "korean_name": "없음",
        "character_voiceactor": [
            ​21921,
            ​21922,
            ​31921,
            ​31922,
            ​11921,
            ​11922
        ],
        "skin_voiceactor": [ ]
    },
    ...
]
                            
Authentication options are still being tested, will let you guys know when it's ready for public use.
Access Controls:
  • Full access: only if the user is the owner of the specific object (requires authentication)
  • Read access: if requesting somebody else's data, read-access (GET | OPTIONS | HEAD) only if their profile is public
  • No access: anything else

All data is returned as JSON. Some endpoints return very large datasets, viewing them in-browser might result in a short freeze.

Endpoint Method Description Example

User

/user-api/user/[username]/ GET Retrieve all data for a user (except sensitive/private information of course).
{
  "profile": {
    # see /user-api/profile/[id]/
  },
  "base_characters": [
    {
      # see /user-api/base-character/[id]/
    },
    ...
  ],
  "characters": [
    {
      # see /user-api/character/[id]/
    },
    ...
  ],
  "formations": [
    {
      # see /user-api/formation/[id]/
    },
    ...
  ],
  "materials": [
    {
      # see /user-api/material/[id]/
    },
    ...
  ]
}
                            

Profile

/user-api/profile/[id]/ GET Retrieve a user's profile.
"profile": {
  "id": 1,
  "url": "https://www.ssherder.com/user-api/profile/1/",
  "public": true,
  "display_name": "Wugue",
  "greeting": "Hello!",
  "rank": 140,
  "cot_floor_record": 50,
  "best_league": 1,
  "formation_group_1": "Formation Group 1",
  "formation_group_2": "Formation Group 2",
  "formation_group_3": "Formation Group 3",
  ...
}
                            
/user-api/profile/[id]/
PUT
PATCH

Modify a profile. Returns a chain object as in 'GET' above.

Writable fields:
  • The "public" field. It expects 'true' or 'false'.
  • The "display_name" field. It expects a string.
  • The "greeting" field. It expects a string.
  • The "rank" field. It expects an integer between 1 and 180 inclusive.
  • The "server" field. It expects an integer of 0 and 2 inclusive, corresponding to { 0:Global, 1:Korean, 2:Japanese }
  • The "cot_floor_record" field. It expects an integer between 0 and 50 inclusive.
  • The "best_league" field. It expects an integer between 0 and 6 inclusive, corresponding to { 0:Bronze, 1:Silver, 2:Gold, 3:Platinum, 4:Diamond, 5:Champions, 6:Galaxy }
  • The "formation_group_N" fields set the titles used for formations groups on the My Formations page. They expect a string.
PATCH /user-api/profile/1/
{
  "display_name": "a6012",
  "rank": 141
}
                            

Base Characters

/user-api/base-character/[id]/ GET Retrieve base_character identified by [id].
{
  "id": 1,
  "url": "https://www.ssherder.com/user-api/base-character/1/",
  "base_character": 10101,
  "ownership": 1,
  "chain_completed": true,
  "teamwork": 25
}
                            
/user-api/base-character/[id]/
PUT
PATCH

Modify a base_character. Returns a base_character object as in 'GET' above.

Writable fields:
  • The "ownership" field. It expects an integer between 0 and 3 inclusive, corresponding to { 0: Not Owned, 1: Base, 2: Evolved, 3: Extreme Evolved }
  • The "chain_completed" field. It expects 'true' or 'false'.
  • The "teamwork" field. It expects an integer between 0 and 30 inclusive.
PATCH /user-api/base-character/1/
{
  "teamwork": 28
}
                            

Characters

/user-api/character/[id]/ GET Retrieve character identified by [id].
{
  "id": 1,
  "url": "https://www.ssherder.com/user-api/character/500/",
  "character": 32125,
  "priority": 3,
  "note": "",
  "waifu": true,
  "husbando": false,
  "level": 60,
  "superb_level": 5,
  "super_trained_level": 6,
  "active_level": 3,
  "passive1_level": 5,
  "passive2_level": 5,
  "passive3_level": 5,
  "plus_pow": 40,
  "plus_tec": 40,
  "plus_vit": 40,
  "plus_spd": 35,
  "clovers": 5
}
                            
/user-api/character/[id]/
PUT
PATCH

Modify a character. Returns a character object as in 'GET' above.

Required fields:
  • The "character" field
Writable fields:
  • The "priority" field sets the character's priority. It expects an integer between 0 (Zero) and 3 (High) inclusive.
  • The "note" field sets the character's note. It expects a string.
  • The "waifu" field sets the character's waifu status. It expects 'true' or 'false', defaults to false if character is male, raises error if user already has a waifu character.
  • The "husbando" field sets the character's husbando status. It expects 'true' or 'false', defaults to false if character is female, raises error if user already has a husbando character.
  • The "level" field sets the character's level. It expects an integer between 1 and 60 inclusive.
    • If character is of category: Player or Manager, defaults to ST*10 if level exceeds ST*10
    • If character is of category: Misc (except Sho Sho), defaults to 1.
  • The "superb_level" field sets the character's superb level. It expects an integer between 0 and 5 inclusive,
    • If character is of category: Misc (except Sho Sho), defaults to 0.
  • The "super_trained_level" field sets the character's super trained level. It expects an integer between 2 and 6 inclusive.
    • If character is of category: Player, defaults to character's rarity if super_trained_level deceeds character's rarity
    • If character is of category: Manager or Misc, defaults to character's rarity
  • The "active_level" field sets the character's active skill level. It expects an integer between 1 and 5 inclusive, defaults to 1 if manager and not evolved, or 2 if evolved.
  • The "passive1_level" field sets the character's first passive skill level. It expects an integer between 0 and 5 inclusive, defaults to user character's superb level + 1 if manager.
  • The "passive2_level" field sets the character's second passive skill level. It expects an integer between 0 and 5 inclusive, defaults to 0 if manager.
  • The "passive3_level" field sets the character's third passive skill level. It expects an integer between 0 and 5 inclusive, defaults to 0 if manager.
  • The "plus_STAT" field sets the character's specified primary stat. It expects an integer between 0 and 40 inclusive.
    • If character is of category: Manager or Misc (except Sho Sho), defaults to 0.
  • The "clovers" field sets the character's clover amount. It expects an integer between 0 and 99 inclusive.
PATCH /user-api/character/500/
{
  "character": 32125,
  "plus_spd": 40
}
                            
/user-api/character/[id]/ DELETE Delete a character. Returns a 204 response ('NO CONTENT') on success.
DELETE /user-api/character/500/
                            
/user-api/character/ POST

Create a new character. Returns a character object as in 'GET' above.

Required and writable fields are the same as in 'PUT/PATCH' above.

POST /user-api/character/
{
  "character": 32125,
}
                            

Materials

/user-api/material/[id]/ GET

Retrieve material identified by [id].

{
  "id": 1,
  "url": "https://www.ssherder.com/user-api/material/1/",
  "character": 44971,
  "count": 5
}
                            
/user-api/material/[id]/
PUT
PATCH

Modify a material. Returns a material object as in 'GET' above.

Writable fields:
  • The "count" field sets how many of this material the user has. It expects an integer between 0 and 99 inclusive.
PATCH /user-api/material/1/
{
  "count": 6
}
                            

Formations

/user-api/formation/[id]/ GET

Retrieve formation identified by [id].

NOTE: There is currently no support for 11th slot, this is expected to change in the future.

{
  "id": 1,
  "url": "https://www.ssherder.com/user-api/formation/300/",
  "formation_group": 1,
  "name": "Unnamed formation",
  "description": "",
  "top_1": 32125,
  "top_2": null,
  "top_3": null,
  "mid_1": null,
  "mid_2": null,
  "mid_3": null,
  "bot_1": null,
  "bot_2": null,
  "bot_3": null,
  "gk": null,
  "ace": 32125
}
                            
/user-api/formation/[id]/
PUT
PATCH

Modify a formation. Returns a formation object as in 'GET' above.

Required fields:
  • The "formation_group" field.
  • The "ace" field.
  • At least one formation slot (see writable fields).
Writable fields:
  • The "formation_group" field sets the formation group that this formation belongs to. It expects an integer between 1 and 10 inclusive.
  • The "name" field sets the formation's name. It expects a string.
  • The "description" field sets the formation's description. It expects a string.
  • The "ace" field. This is a user character ID belonging to a user which must be present in a formation slot (see next line).
  • At least one formation slot has to have a user character ID belonging to a user. Formation slots are as follows: top_[1/2/3], mid_[1/2/3], bot_[1,2,3], gk, the numbered slots follow a left-to-right pattern.
PATCH /user-api/formation/300/
{
  "formation_group": 1,
  "ace": 10101,
  "top_2": 10101
}
                            
/user-api/formation/[id]/ DELETE Delete a formation. Returns a 204 response ('NO CONTENT') on success.
DELETE /user-api/formation/300/
                            
/user-api/formation/ POST

Create a new formation. Returns a formation object as in 'GET' above.

Required and writable fields are the same as in 'PUT/PATCH' above.

POST /user-api/formation/
{
  "formation_group": 1,
  "ace": 32125,
  "top_1": 32125
}