strat-gameplay-webapp/backend/app/models/player_model_info.md
Cal Corum f9aa653c37 CLAUDE: Reorganize Week 6 documentation and separate player model specifications
Split player model architecture into dedicated documentation files for clarity
and maintainability. Added Phase 1 status tracking and comprehensive player
model specs covering API models, game models, mappers, and testing strategy.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-25 23:48:57 -05:00

540 lines
18 KiB
Markdown

# Player Model API Examples
In all examples of API URLs, here are the baseUrl values:
- PD: https://pd.manticorum.com/
- SBa: https://api.sba.manticorum.com/
## PD Player
### API URL:
{{baseUrl}}/api/v2/players/:player_id?csv=false
### API Response
{
"player_id": 11223,
"p_name": "Matt Karchner",
"cost": 1266,
"image": "https://pd.manticorum.com/api/v2/players/11223/pitchingcard?d=2025-4-14",
"image2": null,
"mlbclub": "Chicago White Sox",
"franchise": "Chicago White Sox",
"cardset": {
"id": 20,
"name": "1998 Season",
"description": "Cards based on the 1998 MLB season",
"event": null,
"for_purchase": true,
"total_cards": 1,
"in_packs": true,
"ranked_legal": true
},
"set_num": 1006697,
"rarity": {
"id": 1,
"value": 5,
"name": "MVP",
"color": "56f1fa"
},
"pos_1": "RP",
"pos_2": "CP",
"pos_3": null,
"pos_4": null,
"pos_5": null,
"pos_6": null,
"pos_7": null,
"pos_8": null,
"headshot": "https://www.baseball-reference.com/req/202412180/images/headshots/5/506ce471_sabr.jpg",
"vanity_card": null,
"strat_code": null,
"bbref_id": "karchma01",
"fangr_id": "1006697",
"description": "1998 Season",
"quantity": 999,
"mlbplayer": {
"id": 4180,
"first_name": "Matt",
"last_name": "Karchner",
"key_fangraphs": 1006697,
"key_bbref": "karchma01",
"key_retro": "karcm001",
"key_mlbam": 116840,
"offense_col": 2
},
"paperdex": {
"count": 1,
"paperdex": [
{
"id": 40108,
"team": 69,
"player": 11223,
"created": 1742675422723
}
]
}
}
## PD Scouting Data
### Batting API URL:
{{baseUrl}}/api/v2/battingcardratings/player/:player_id?short_output=false
### Batting API Response:
{
"count": 2,
"ratings": [
{
"id": 9703,
"battingcard": {
"id": 4871,
"player": {
"player_id": 10633,
"p_name": "Chuck Knoblauch",
"cost": 77,
"image": "https://pd.manticorum.com/api/v2/players/10633/battingcard?d=2025-4-14",
"image2": null,
"mlbclub": "New York Yankees",
"franchise": "New York Yankees",
"cardset": {
"id": 20,
"name": "1998 Season",
"description": "Cards based on the 1998 MLB season",
"event": null,
"for_purchase": true,
"total_cards": 1,
"in_packs": true,
"ranked_legal": true
},
"set_num": 609,
"rarity": {
"id": 3,
"value": 2,
"name": "Starter",
"color": "C0C0C0"
},
"pos_1": "2B",
"pos_2": null,
"pos_3": null,
"pos_4": null,
"pos_5": null,
"pos_6": null,
"pos_7": null,
"pos_8": null,
"headshot": "https://www.baseball-reference.com/req/202410300/images/headshots/1/1ab36543_sabr.jpg",
"vanity_card": null,
"strat_code": null,
"bbref_id": "knoblch01",
"fangr_id": "609",
"description": "1998 Season",
"quantity": 999,
"mlbplayer": {
"id": 3699,
"first_name": "Chuck",
"last_name": "Knoblauch",
"key_fangraphs": 609,
"key_bbref": "knoblch01",
"key_retro": "knobc001",
"key_mlbam": 117197,
"offense_col": 1
}
},
"variant": 0,
"steal_low": 8,
"steal_high": 11,
"steal_auto": true,
"steal_jump": 0.25,
"bunting": "C",
"hit_and_run": "D",
"running": 13,
"offense_col": 1,
"hand": "R"
},
"vs_hand": "L",
"pull_rate": 0.29379,
"center_rate": 0.41243,
"slap_rate": 0.29378,
"homerun": 0.0,
"bp_homerun": 2.0,
"triple": 1.4,
"double_three": 0.0,
"double_two": 5.1,
"double_pull": 5.1,
"single_two": 3.5,
"single_one": 4.5,
"single_center": 1.35,
"bp_single": 5.0,
"hbp": 2.0,
"walk": 18.25,
"strikeout": 9.75,
"lineout": 9.0,
"popout": 16.0,
"flyout_a": 0.0,
"flyout_bq": 1.65,
"flyout_lf_b": 1.9,
"flyout_rf_b": 2.0,
"groundout_a": 7.0,
"groundout_b": 10.5,
"groundout_c": 2.0,
"avg": 0.2263888888888889,
"obp": 0.41388888888888886,
"slg": 0.37453703703703706
},
{
"id": 9704,
"battingcard": {
"id": 4871,
"player": {
"player_id": 10633,
"p_name": "Chuck Knoblauch",
"cost": 77,
"image": "https://pd.manticorum.com/api/v2/players/10633/battingcard?d=2025-4-14",
"image2": null,
"mlbclub": "New York Yankees",
"franchise": "New York Yankees",
"cardset": {
"id": 20,
"name": "1998 Season",
"description": "Cards based on the 1998 MLB season",
"event": null,
"for_purchase": true,
"total_cards": 1,
"in_packs": true,
"ranked_legal": true
},
"set_num": 609,
"rarity": {
"id": 3,
"value": 2,
"name": "Starter",
"color": "C0C0C0"
},
"pos_1": "2B",
"pos_2": null,
"pos_3": null,
"pos_4": null,
"pos_5": null,
"pos_6": null,
"pos_7": null,
"pos_8": null,
"headshot": "https://www.baseball-reference.com/req/202410300/images/headshots/1/1ab36543_sabr.jpg",
"vanity_card": null,
"strat_code": null,
"bbref_id": "knoblch01",
"fangr_id": "609",
"description": "1998 Season",
"quantity": 999,
"mlbplayer": {
"id": 3699,
"first_name": "Chuck",
"last_name": "Knoblauch",
"key_fangraphs": 609,
"key_bbref": "knoblch01",
"key_retro": "knobc001",
"key_mlbam": 117197,
"offense_col": 1
}
},
"variant": 0,
"steal_low": 8,
"steal_high": 11,
"steal_auto": true,
"steal_jump": 0.25,
"bunting": "C",
"hit_and_run": "D",
"running": 13,
"offense_col": 1,
"hand": "R"
},
"vs_hand": "R",
"pull_rate": 0.25824,
"center_rate": 0.1337,
"slap_rate": 0.60806,
"homerun": 1.05,
"bp_homerun": 3.0,
"triple": 1.2,
"double_three": 0.0,
"double_two": 3.5,
"double_pull": 3.5,
"single_two": 4.3,
"single_one": 6.4,
"single_center": 2.4,
"bp_single": 5.0,
"hbp": 3.0,
"walk": 12.1,
"strikeout": 9.9,
"lineout": 11.0,
"popout": 13.0,
"flyout_a": 0.0,
"flyout_bq": 1.6,
"flyout_lf_b": 1.5,
"flyout_rf_b": 1.95,
"groundout_a": 12.0,
"groundout_b": 11.6,
"groundout_c": 0.0,
"avg": 0.2439814814814815,
"obp": 0.3837962962962963,
"slg": 0.40185185185185185
}
]
}
### Pitching API URL:
{{baseUrl}}/api/v2/pitchingcardratings/player/:player_id?short_output=false
### Pitching API Response:
{
"count": 2,
"ratings": [
{
"id": 8097,
"pitchingcard": {
"id": 4049,
"player": {
"player_id": 8558,
"p_name": "Josh Lindblom",
"cost": 15,
"image": "https://pd.manticorum.com/api/v2/players/8558/pitchingcard?d=2025-3-22",
"image2": null,
"mlbclub": "Milwaukee Brewers",
"franchise": "Free Agents",
"cardset": {
"id": 1,
"name": "2021 Season",
"description": "Cards based on the full 2021 season",
"event": null,
"for_purchase": true,
"total_cards": 791,
"in_packs": true,
"ranked_legal": false
},
"set_num": 7882,
"rarity": {
"id": 5,
"value": 0,
"name": "Replacement",
"color": "454545"
},
"pos_1": "RP",
"pos_2": null,
"pos_3": null,
"pos_4": null,
"pos_5": null,
"pos_6": null,
"pos_7": null,
"pos_8": null,
"headshot": "https://www.baseball-reference.com/req/202311010/images/headshots/6/6a648ede_mlbam.jpg",
"vanity_card": null,
"strat_code": "458676",
"bbref_id": "lindbjo01",
"fangr_id": "7882",
"description": "2021",
"quantity": 999,
"mlbplayer": {
"id": 1527,
"first_name": "Josh",
"last_name": "Lindblom",
"key_fangraphs": 7882,
"key_bbref": "lindbjo01",
"key_retro": "lindj004",
"key_mlbam": 458676,
"offense_col": 2
}
},
"variant": 0,
"balk": 0,
"wild_pitch": 20,
"hold": 9,
"starter_rating": 1,
"relief_rating": 2,
"closer_rating": null,
"batting": "#1WR-C",
"offense_col": 1,
"hand": "R"
},
"vs_hand": "L",
"homerun": 2.6,
"bp_homerun": 6.0,
"triple": 2.1,
"double_three": 0.0,
"double_two": 7.1,
"double_cf": 0.0,
"single_two": 1.0,
"single_one": 1.0,
"single_center": 0.0,
"bp_single": 5.0,
"hbp": 6.0,
"walk": 17.6,
"strikeout": 11.4,
"flyout_lf_b": 0.0,
"flyout_cf_b": 7.75,
"flyout_rf_b": 3.6,
"groundout_a": 1.75,
"groundout_b": 6.1,
"xcheck_p": 1.0,
"xcheck_c": 3.0,
"xcheck_1b": 2.0,
"xcheck_2b": 6.0,
"xcheck_3b": 3.0,
"xcheck_ss": 7.0,
"xcheck_lf": 2.0,
"xcheck_cf": 3.0,
"xcheck_rf": 2.0,
"avg": 0.17870370370370367,
"obp": 0.3972222222222222,
"slg": 0.4388888888888889
},
{
"id": 8098,
"pitchingcard": {
"id": 4049,
"player": {
"player_id": 8558,
"p_name": "Josh Lindblom",
"cost": 15,
"image": "https://pd.manticorum.com/api/v2/players/8558/pitchingcard?d=2025-3-22",
"image2": null,
"mlbclub": "Milwaukee Brewers",
"franchise": "Free Agents",
"cardset": {
"id": 1,
"name": "2021 Season",
"description": "Cards based on the full 2021 season",
"event": null,
"for_purchase": true,
"total_cards": 791,
"in_packs": true,
"ranked_legal": false
},
"set_num": 7882,
"rarity": {
"id": 5,
"value": 0,
"name": "Replacement",
"color": "454545"
},
"pos_1": "RP",
"pos_2": null,
"pos_3": null,
"pos_4": null,
"pos_5": null,
"pos_6": null,
"pos_7": null,
"pos_8": null,
"headshot": "https://www.baseball-reference.com/req/202311010/images/headshots/6/6a648ede_mlbam.jpg",
"vanity_card": null,
"strat_code": "458676",
"bbref_id": "lindbjo01",
"fangr_id": "7882",
"description": "2021",
"quantity": 999,
"mlbplayer": {
"id": 1527,
"first_name": "Josh",
"last_name": "Lindblom",
"key_fangraphs": 7882,
"key_bbref": "lindbjo01",
"key_retro": "lindj004",
"key_mlbam": 458676,
"offense_col": 2
}
},
"variant": 0,
"balk": 0,
"wild_pitch": 20,
"hold": 9,
"starter_rating": 1,
"relief_rating": 2,
"closer_rating": null,
"batting": "#1WR-C",
"offense_col": 1,
"hand": "R"
},
"vs_hand": "R",
"homerun": 5.0,
"bp_homerun": 2.0,
"triple": 1.0,
"double_three": 0.0,
"double_two": 0.0,
"double_cf": 6.15,
"single_two": 6.5,
"single_one": 0.0,
"single_center": 6.5,
"bp_single": 5.0,
"hbp": 2.0,
"walk": 10.2,
"strikeout": 26.65,
"flyout_lf_b": 0.0,
"flyout_cf_b": 0.0,
"flyout_rf_b": 0.0,
"groundout_a": 6.0,
"groundout_b": 2.0,
"xcheck_p": 1.0,
"xcheck_c": 3.0,
"xcheck_1b": 2.0,
"xcheck_2b": 6.0,
"xcheck_3b": 3.0,
"xcheck_ss": 7.0,
"xcheck_lf": 2.0,
"xcheck_cf": 3.0,
"xcheck_rf": 2.0,
"avg": 0.2652777777777778,
"obp": 0.37824074074074077,
"slg": 0.5074074074074074
}
]
}
## SBa Player
### API URL:
{{baseUrl}}/players/:player_id?short_output=false
### API Response
{
"id": 12288,
"name": "Ronald Acuna Jr",
"wara": 0.0,
"image": "https://sba-cards-2024.s3.us-east-1.amazonaws.com/2024-cards/ronald-acuna-jr.png",
"image2": null,
"team": {
"id": 499,
"abbrev": "WV",
"sname": "Black Bears",
"lname": "West Virginia Black Bears",
"manager_legacy": null,
"division_legacy": null,
"gmid": "258104532423147520",
"gmid2": null,
"manager1": {
"id": 3,
"name": "Cal",
"image": null,
"headline": null,
"bio": null
},
"manager2": null,
"division": {
"id": 41,
"division_name": "Big Chungus",
"division_abbrev": "BBC",
"league_name": "SBa",
"league_abbrev": "SBa",
"season": 12
},
"mascot": null,
"stadium": "https://i.postimg.cc/rpRZ2NNF/wvpark.png",
"gsheet": null,
"thumbnail": "https://i.postimg.cc/HjDc8bBF/blackbears-transparent.png",
"color": "6699FF",
"dice_color": null,
"season": 12,
"auto_draft": null
},
"season": 12,
"pitcher_injury": null,
"pos_1": "RF",
"pos_2": null,
"pos_3": null,
"pos_4": null,
"pos_5": null,
"pos_6": null,
"pos_7": null,
"pos_8": null,
"last_game": null,
"last_game2": null,
"il_return": null,
"demotion_week": 16,
"headshot": null,
"vanity_card": null,
"strat_code": "Acuna,R",
"bbref_id": "acunaro01",
"injury_rating": "5p30",
"sbaplayer": null
}