Profile by puuid
Full profile SummonerView by puuid — 200/202/404, headers and cache.
GET
/api/lol/{shard}/profile/{puuid}Full profile by puuid
Path params
Request
https://api.safjnest.com/api/lol/EUW1/profile/{puuid}curl "https://api.safjnest.com/api/lol/EUW1/profile/{puuid}"Missing required: puuid
CORS enabled (*) — runs directly in your browser against https://api.safjnest.com
Profile — by puuid
GET /api/lol/{shard}/profile/{puuid}
Full profile — SummonerView with Summoner, ranks and overview. Recent matches use the dedicated /matches endpoint.
- Controller:
LolController.java:63→profileService.get(shard, puuid)→profileResponse(:291) - Response:
200SummonerView(READY/PARTIAL),202LolApiErrorprofile_pending,404if puuid unknown - Header:
X-Profile-Refresh: truewhenmetadata.refresh=true(:294) - Cache:
ProfileService.get→SUMMONER_OVERVIEWread-through Redis → Mongo →ComputeSchedulerif miss/stale
| Parameter | Position | Required | Type | Validation |
|---|---|---|---|---|
shard | path | yes | LeagueShard | requiredShard |
puuid | path | yes | String | requiredText(puuid,"puuid") |
Response DTO — SummonerView
SummonerView (src/main/java/com/safjnest/lol/model/summoner/SummonerView.java:13):
java
public record SummonerView(
Summoner summoner,
Map<GameQueueType, Rank> ranks,
SummonerOverview overview,
@JsonInclude(NON_NULL) ResponseMetadata metadata
) {}
Summoner:puuid(PK),riotId(gameName#tagLineString),region: LeagueShard,level: int,icon: intRank:tier: TierType,division: int,lp: int,wins/losses, derivedTierDivisionTypeSummonerOverview: aggregatedProfileStatistics+List<Mastery>+champions: Map<Integer, Champion>ResponseMetadata:pagination,lastUpdate,refresh,filter
JSON example — 200 OK
json
{
"summoner": {
"puuid": "abc123-puuid",
"riotId": "Hide on bush#KR1",
"region": "KR",
"level": 512,
"icon": 4567
},
"ranks": {
"RANKED_SOLO_5X5": { "tier": "CHALLENGER", "division": 1, "lp": 1280, "wins": 342, "losses": 298 }
},
"overview": {
"statistics": { "games": 1240, "wins": 670, "kda": 3.21 },
"masteries": [{ "championId": 157, "championPoints": 1234567, "championLevel": 7 }],
"champions": { "157": { "games": 320, "wins": 180, "kda": 4.1 } }
},
"metadata": {
"lastUpdate": 1715434800000,
"refresh": false
}
}
curl
bash
curl -i "https://api.safjnest.com/api/lol/EUW1/profile/abc123-puuid"
curl "https://api.safjnest.com/api/lol/KR/profile/abc-123-puuid"
202 pending
http
HTTP/1.1 202 Accepted
X-Profile-Refresh: true
{
"status": 202,
"code": "profile_pending",
"message": "Profile initialization is pending",
"metadata": { "lastUpdate": null, "refresh": true }
}
