GET /api/v1/challenges/{challengeId}/room
그룹 방 내부 화면 렌더링용 일괄 조회. ACTIVE 멤버 전용이다(비멤버는 403 — 공개 상세는 탐색 모듈의 GET /challenges/{id}가 담당). 요약 스탯, 고정 공지 1건, 랭킹 상위 3, 내 오늘 인증 상태를 한 번에 내린다.
unreadNoticeCount와 pinnedNotice.isRead는 삭제됐다.pinnedNotice는 고정 공지 요약만 — 본문·댓글은 공지 상세 API(모듈 ⑥)로 가져온다. 고정 공지가 없거나, 봇방장 방이거나, 고정 공지 작성자를 내가 차단한 경우엔 null이다.ownerType=BOT은 방장이 없는 상태를 뜻하며 별도의 액션이 없다 — 방장 권한 축소(챌린지 정책 §7.1 · §11, 2026-08-25)로 "방장 되기" 버튼과 선착순 클레임은 페이지2로 이관됐다. 클라는 봇방장 방에서 어떤 승계 CTA도 그리지 않고, 방은 봇방장 체제로 그대로 운영된다(인증·판정·랭킹 정상).summary.title을 AI 임시 제목으로 마스킹한다. 방 내부의 원문 챌린지 표시값을 다시 노출하지 않는다.topRanking은 10회 미만 참여자 미등재, 내가 차단한 유저는 임시 닉네임·기본 이미지로 마스킹된 채 노출된다.summary.weeklyCount(주간 수행 횟수 1~7)로 내린다. 특정 요일 지정은 없다 — 구 repeatDays·cycleDays는 이 API에서도 사용하지 않는다.myWeekly는 이번 주 사이클 경계와 내 성공 횟수 — 클라가 "이번 주 2/3"를 그리는 값이다. 중간 입장(joinNote=NEXT_CYCLE)이라 다음 사이클부터 판정되는 멤버는 judging=false, done=0으로 내려간다.routineProgress (2026-10-07 추가) — 챌린지 전체 기간 기준 루틴 진행률. myProgressRate(%, 0~100, 소수 둘째 자리) = 내 성공일 ÷ 목표일 × 100(상한 100), mySuccessDays·myTargetDays, roomAverageProgressRate = 지금 참여 중(ACTIVE) 멤버의 평균(혼자면 내 값과 같음). GET /verifications/progress의 progressRate와 같은 저장값이라 두 화면 숫자가 어긋나지 않는다. 첫 인증 전에는 목표일 계산 전이라 myTargetDays=0, 진행률 0일 수 있다.| Key | Value | Description |
|---|---|---|
| Authorization | Bearer {accessToken} | 필수 |
바디 없음.
{}