본문으로 이동

변경 이력

개발자 API와 문서의 변경 사항을 날짜순으로 정리합니다.

목차

개발자 API와 문서가 바뀐 내용을 날짜별로 정리합니다. 기존 앱의 코드를 고쳐야 할 수 있는 변경은 Breaking으로 표시합니다.

변경 이력

최신 항목이 맨 위에 있습니다. 구분은 추가·변경·Breaking·수정·문서 중 하나입니다.

날짜 구분 내용
2026-11-03 변경 룰렛 > 연차 보너스 : 정확히 n연차일 때만이 아니라 n연차마다 m회를 더함(n=10·m=1 이면 20연차 +2, 25연차 +2). 한 번의 보너스 합계는 1,000회까지
2026-10-23 추가 룰렛 > 조회·생성·수정 : trigger_donation_allow_remainder(배수가 아닌 후원도 가능한 만큼 돌리기) 추가. 수정에서 빼거나 null 이면 기존 값 유지
2026-10-19 추가 노래 신청 > 상태 : settings.max_request_per_subscriber·settings.max_request_per_follower(구독자·팔로워 최대 신청 곡 수, null 은 인당과 같음) 추가
2026-10-13 변경 명령어 > 출석 명령 : response 가 빈 문자열이면 출석 명령도 채팅을 보내지 않음(이전에는 봇 기본 출석 문구). 출석 기록·보상·attendance 이벤트는 그대로
2026-10-12 추가 룰렛 > 조회·생성·수정 : multi_collect_enabled(연차 모아보기) 추가. 수정에서 빼거나 null 이면 기존 값 유지
2026-10-07 변경 명령어 > 생성·수정 : response 를 빈 문자열로 저장할 수 있음(이전에는 422). 빈 응답이면 봇이 채팅을 보내지 않음. 필드는 여전히 필수
2026-10-06 Breaking 룰렛 > 생성·수정 : items[].data 를 100자로 제한(넘으면 422). 대시보드와 같은 상한이며, 더 긴 항목은 대시보드에서 숨겨졌다가 다음 저장 때 지워졌다
2026-10-06 변경 OAuth > 인가 오류 : invalid_scope·unsupported_response_type 은 스트리머가 이미 동의한 앱일 때만 콜백으로 보내고, 그 밖에는 오류 화면에서 멈춤
2026-10-06 변경 포인트 > 시청자 조회 : type=nickname 은 글자 그대로 같은 닉네임만 찾고, 여럿이면 이 채널 포인트 기록으로 좁힌 뒤에도 여럿이면 409
2026-10-06 수정 앱 관리 > 등록·수정 : redirect URI 를 한 개 500자까지, 요청당 20개·scope 50개까지 받음(넘으면 400·422). 500자 넘는 주소가 등록돼 인가 직후 500 이 나던 문제
2026-10-06 수정 명령어 > 생성·수정 : 문서의 32비트 범위를 넘는 cooltime·user_cooltime·일일 제한이 500 대신 422
2026-10-06 Breaking 룰렛 > 생성·수정 : multi_bonus_extra_count 를 1~100 으로 제한(넘으면 422). 이미 저장된 더 큰 값은 실행할 때 100회로 계산
2026-10-06 변경 룰렛 > 명령어 연차 : 채팅 <명령어> N 은 max_multi_roulette_limit·allowed_multi_list 와 상관없이 100연차까지. 넘으면 돌리지 않고 안내
2026-10-05 Breaking 공통 > 호출 한도 : 개발자 API 를 앱(client_id)당 분당 30회로 제한(연결된 모든 채널 합산). 넘으면 429 와 Retry-After. 응답 헤더 X-RateLimit-Limit·X-RateLimit-Remaining·X-RateLimit-Reset 추가
2026-10-05 Breaking OAuth > 리프레시 토큰 : 30일 만료(갱신할 때마다 다시 30일). 같은 토큰으로 동시에 갱신하면 한 건만 성공. 회전된 토큰을 30초 뒤에 다시 쓰면 그 채널의 토큰 쌍을 폐기
2026-10-05 Breaking 룰렛 > 조회·생성·수정 : send_message·activate·tts_enabled·multi_bonus_enabled 를 0/1 대신 true/false 로 반환
2026-10-05 Breaking 룰렛 > 생성·수정 : roulette_name 30자, trigger_donation_text 100자, 정수 필드는 32비트 범위로 제한(넘으면 422). 예전에도 31자 이상 이름은 저장되지 않았음
2026-10-05 Breaking 포인트 > 목록 : 빈 페이지가 null 대신 data: [] 페이지 객체. total 추가
2026-10-05 추가 OAuth > 토큰 폐기 : POST /developers/oauth/revoke (RFC 7009). 그 채널의 토큰 쌍만 지우고 동의는 유지
2026-10-05 추가 공통 > 토큰 정보 : GET /api/v1/developer/me — 토큰의 채널·권한·만료 시각 (권한 불필요)
2026-10-05 추가 OAuth > 클라이언트 인증 : HTTP Basic 지원. Basic 과 본문 client_secret 을 함께 보내면 400 invalid_request
2026-10-05 추가 룰렛 내역 > 목록 : size·has_next·has_prev 추가(next 는 유지)
2026-10-05 추가 앱 관리 > 사용 현황 : 오늘 권한별·최근 30일 일별 API 호출 수
2026-10-05 변경 SR > 상태 : 두 목록이 모두 비면 stop 대신 waiting. 그 뒤 들어오는 신청은 바로 재생
2026-10-05 변경 OAuth > 인가 화면 : 이미 동의한 범위 안의 요청은 동의 화면 없이 바로 코드를 돌려줌
2026-10-05 변경 OAuth > 토큰 요청 한도 : 앱 하나당 분당 15회 대신 같은 IP·같은 앱 분당 15회, 앱 인증을 통과한 발급·갱신은 앱 하나당 분당 15회. client_id 는 대소문자를 가리지 않고 셈
2026-10-05 변경 공통 > 호출 한도 : 한 채널에 대한 호출은 모든 앱을 합쳐 분당 900회, 같은 IP 의 API·OAuth 요청은 분당 1,200회
2026-10-05 변경 WebSocket > 권한 확인 : 메시지를 주고받을 때와 30초마다 다시 확인. 64KiB 를 넘거나 IP 당 분당 240개를 넘는 앱 메시지, 5초 안에 전달하지 못한 이벤트는 4401 로 종료(이전 1011)
2026-10-05 변경 공통 > 413 : 응답에서 max_size 제거
2026-10-05 변경 OAuth > 토큰·폐기 응답 : Cache-Control: no-store, Pragma: no-cache
2026-10-05 변경 공통 > 401·403 : WWW-Authenticate 헤더로 이유(invalid_token, insufficient_scope)를 알림
2026-10-05 변경 포인트 > 시청자 조회 : 잘못된 type 의 422 를 다른 검증 오류와 같은 배열 형식으로
2026-10-05 수정 룰렛 > 생성·수정 : 저장 실패 때 DB 오류 원문 대신 고정 문구, 이름이 겹치면 400, items 의 ticket 표시를 지우던 문제
2026-10-05 수정 WebSocket > 이벤트 : 봇과 잼쿠봇 서버가 만든 이벤트만 앱에 전달(보안 수정)
2026-10-05 문서 개발자센터 > 문서 : /docs/developers 아래 시작하기·인증·API 레퍼런스·실시간 이벤트·참고 페이지로 재구성. 옛 주소는 새 주소로 연결
2026-10-03 추가 룰렛 > 조회·생성·수정 : 연차 보너스 필드 multi_bonus_enabled·multi_bonus_trigger_count·multi_bonus_extra_count 추가
2026-10-03 추가 WebSocket > point_use : 커스텀 명령어 이벤트에 실행한 명령어 이름 used_command 추가
2026-10-03 변경 WebSocket > overlay_text : 이 이벤트를 더 이상 발행하지 않음. 커스텀 명령어 이벤트의 overlay_text 필드는 빈 문자열
2026-10-03 문서 개발자센터 > 문서 : API 가이드를 사용 가이드와 같은 문서 화면의 개발자센터 탭으로 옮김
2026-10-02 변경 명령어 > point : 응답에서 절댓값이 9,007,199,254,740,991을 넘는 값은 문자열로 반환. 요청은 BIGINT 범위만 허용(벗어나면 422)
2026-10-01 추가 명령어 > 조회·생성·수정 : user_cooltime·live_only·notice_on_staff 필드 추가
2026-10-01 변경 명령어 > 생성·수정 : 음수 cooltime은 422
2026-09-29 Breaking 룰렛 > 생성·수정 : 항목 검증 추가. weight가 음수·무한대·NaN이거나 합계가 0이면 400. 예전에는 잘못된 weight를 0으로 바꿔 저장했음. 빈 items는 허용
2026-09-29 추가 SR > 상태 : settings.block_shorts(쇼츠 신청 차단) 추가
2026-09-25 Breaking 공통 > API 경로 : /developers/api/v1/*에서 /api/v1/developer/*로 이전(WebSocket 포함). 옛 경로는 별칭 없이 없어짐(REST는 404). OAuth 경로 /developers/oauth/*는 그대로
2026-09-25 변경 명령어·룰렛 > 수정(PUT) : 보내지 않은 필드를 기본값으로 덮지 않고 기존 값을 유지
2026-09-25 수정 룰렛 > 단건 조회·수정·삭제 : 이름에 /가 들어간 룰렛을 찾지 못하던 문제
2026-09-23 변경 OAuth > 인가 화면 : 로그인하지 않은 스트리머에게 로그인 안내 화면을 보여 주고 로그인 뒤 원래 인가 화면으로 복귀. 동의 중 세션이 만료되면 오류 대신 로그인 뒤 인가 화면으로 다시 안내
2026-09-11 변경 OAuth > 액세스 토큰 : 유효 권한을 토큰·현재 동의·앱 선언의 교집합으로 계산. 더 좁게 다시 동의하면 이미 발급된 토큰도 바로 좁아짐
2026-09-11 변경 WebSocket > 권한 확인 : ping 때만 하던 토큰 재확인을 이벤트를 보낼 때마다 하고, 무효면 4401로 종료
2026-09-11 수정 OAuth > 인가 화면 : 로그인하지 않은 상태로 인가를 시작하면 로그인 뒤 인가 화면으로 돌아오지 못하던 문제
2026-08-28 추가 룰렛 > 조회·생성·수정 : 연차·TTS 필드 max_multi_roulette_limit·allowed_multi_list·tts_enabled 추가
2026-07-25 추가 앱 관리 > client_secret : 앱 상세에서 다시 열람
2026-07-25 추가 앱 관리 > 권한(scope) : 앱마다 사용할 권한을 선언. 선언 밖 권한을 요청하면 invalid_scope, 선언을 줄이면 기존 동의·토큰도 남은 범위로 좁아짐
2026-07-25 추가 OAuth > 토큰 요청 : 앱(client_id)당 분당 15회 한도. 넘으면 429 slow_down
2026-07-25 수정 SR > 상태 : 음량을 0으로 저장하면 settings.volume이 100으로 나오던 문제
2026-07-25 문서 개발자센터 > 문서·앱 관리 : API 가이드는 /docs/developers, 앱 등록·관리는 대시보드 개발자센터(API)로 분리
2026-07-24 추가 SR > 상태 : settings.no_duplicate(중복 곡 방지)·settings.captions_enabled(유튜브 자막) 추가
2026-07-07 추가 개발자센터 > OAuth 앱 플랫폼 : 출시. 인가 코드 방식 OAuth, 명령어·룰렛·룰렛 내역·SR·포인트 API, 실시간 이벤트 WebSocket. 당시 API 경로는 /developers/api/v1/*

이 가이드로 해결이 안 됐나요?

디스코드로 문의하기

명령어, 룰렛, OBS처럼 궁금한 걸 검색해 보세요.