플레이어
플레이타임, 킬·데스, 접속 상태, 그리고 최대 90일치 킬로그를 조회합니다.
프로필#
GET /v1/players/{uuid 또는 닉네임}
키 필요
curl -H "Authorization: Bearer ml_…" \
https://api.mcmi.kr/v1/players/rihacats
{
"data": {
"uuid": "cfd95c20-5eb5-400b-acfc-bd65fbee1ef4",
"name": "rihacats",
"status": "offline",
"online": false,
"last_seen": "2026-09-12T07:59:45.838Z",
"playtime": { "ticks": 4400020, "seconds": 220001, "hours": 61.1 },
"combat": { "deaths": 5, "player_kills": 0, "mob_kills": 1 }
}
}
필드#
| 필드 | 뜻 |
|---|---|
status | online 또는 offline |
last_seen | 마지막으로 접속을 종료한 시각 (ISO 8601). 접속 중이면 null (기록이 없어도 null 일 수 있으니 status 와 함께 보세요) |
playtime.ticks | 바닐라 통계 원본값 (1초 = 20틱) |
playtime.hours | 소수점 한 자리로 반올림한 시간 |
combat.player_kills | 플레이어를 처치한 횟수 |
combat.mob_kills | 몹을 처치한 횟수 |
도움말
접속 중인 분은 last_seen 이 null 입니다. "마지막 접속: 없음"이 아니라
"지금 접속 중"이라는 뜻이니, 화면에는 status 를 먼저 보고 표시해 주세요.
const label = data.online
? "온라인"
: `마지막 접속 ${new Date(data.last_seen).toLocaleString("ko-KR")}`;
참고
닉네임으로도 UUID로도 찾으실 수 있습니다. 다만 닉네임은 바뀔 수 있으니 저장하실 때는 UUID를 키로 쓰시길 권해드립니다.
메인 서버에 한 번도 들어오지 않은 분은 404 예요. 접속 상태(status)도 메인 서버 기준이라, 로비에만 계신 분은 offline 으로 보여요.
킬로그#
GET /v1/players/{id}/killlog
키 필요
언제, 어디 서버에서, 어떻게 죽었는지를 최대 90일치 돌려드립니다.
curl -H "Authorization: Bearer ml_…" \
"https://api.mcmi.kr/v1/players/rihacats/killlog?type=deaths&limit=2"
{
"data": [
{
"id": "130",
"at": "2026-08-22T10:12:29.000Z",
"server": "lobby",
"outcome": "death",
"victim": "rihacats",
"killer": null,
"killer_kind": "environment",
"cause": "died"
}
],
"meta": {
"player": "rihacats",
"type": "deaths",
"days": 90,
"retention_days": 90,
"next_cursor": "129"
}
}
질의 변수#
| 변수 | 기본값 | 설명 |
|---|---|---|
type | all | all / deaths (죽은 기록) / kills (죽인 기록) |
days | 90 | 최근 며칠치인지. 90을 넘길 수 없습니다 |
limit | 50 | 한 번에 받을 개수 (최대 200) |
cursor | – | meta.next_cursor 값을 넣으면 다음 장을 받습니다 |
필드#
| 필드 | 뜻 |
|---|---|
outcome | 조회한 분 기준입니다. death 면 그분이 죽은 기록, kill 이면 죽인 기록 |
server | mainsv 또는 lobby |
killer | 가해자 이름. 환경 사망이면 null |
killer_kind | player / mob / environment |
cause | 사망 서술 (drowned, was slain by … 등) |
중요
좌표는 담기지 않습니다#
어디서 죽었는지는 알려드리지 않습니다. 좌표가 붙은 사망 기록은
거점 위치를 추적하는 도구가 되기 때문입니다.
시각·서버·사인까지만 제공하며, 이 방침은 바뀌지 않습니다.
경고
90일이 지난 기록은 삭제됩니다. 더 오래 보관하고 싶으시면 여러분 쪽에 저장해 주세요.
kills 는 플레이어를 죽인 기록만 셉니다. 몹 처치는 프로필의 combat.mob_kills 에 있습니다.
참고
로비는 파쿠르 구역이라 낙하 사망이 자주 기록됩니다.
전투 기록만 보고 싶으시면 server 로 걸러주세요.
활용 예시#
const res = await fetch(`https://api.mcmi.kr/v1/players/${name}`, {
headers: { Authorization: `Bearer ${key}` },
});
if (res.status === 404) return "처음 오신 분이에요";
const { data } = await res.json();
return [
`${data.name} — ${data.online ? "🟢 온라인" : "⚫ 오프라인"}`,
`플레이타임 ${data.playtime.hours}시간`,
`K/D ${data.combat.player_kills}/${data.combat.deaths}`,
].join("\n");
const url = new URL(`https://api.mcmi.kr/v1/players/${name}/killlog`);
url.searchParams.set("type", "deaths");
url.searchParams.set("days", "7");
url.searchParams.set("limit", "5");
const { data } = await (await fetch(url, {
headers: { Authorization: `Bearer ${key}` },
})).json();
for (const event of data) {
console.log(`${event.at} [${event.server}] ${event.cause}`);
}
댓글
댓글은 마코노미 디스코드 서버 멤버만 쓸 수 있어요. 디스코드로 로그인