영업시간
대시보드 상담시간 설정에 저장된 요일별 영업 시간대와 휴일을 서버에서 읽는 조회 API입니다. 읽기 전용이므로 영업시간을 바꾸려면 대시보드에서 수정하세요.
영업시간 조회
GET /hours — 워크스페이스에 설정된 영업시간(business hours)을 조회합니다.
- Scope:
hours:read - 쿼리·바디: 없음
아래 요청은 영업시간 설정을 조회합니다.
curl https://api.talk.zeroworks.ai/api/public/v1/hours \
-H "Authorization: Bearer ztpat_..."
응답
business_hours는 대시보드가 저장한 설정 JSON을 그대로 전달합니다.
{
"success": true,
"data": {
"business_hours": {
"timezone": "Asia/Seoul",
"schedule": [
{ "day": 0, "is_open": false, "ranges": [] },
{ "day": 1, "is_open": true, "ranges": [{ "open_time": "09:00", "close_time": "18:00" }] },
{ "day": 2, "is_open": true, "ranges": [{ "open_time": "09:00", "close_time": "18:00" }] },
{ "day": 3, "is_open": true, "ranges": [{ "open_time": "09:00", "close_time": "18:00" }] },
{ "day": 4, "is_open": true, "ranges": [{ "open_time": "09:00", "close_time": "18:00" }] },
{ "day": 5, "is_open": true, "ranges": [{ "open_time": "09:00", "close_time": "18:00" }] },
{ "day": 6, "is_open": false, "ranges": [] }
],
"holidays": [],
"custom_holidays": []
}
}
}
영업시간을 설정한 적이 없는 워크스페이스는 business_hours 키가 생략되지 않고 null로 내려갑니다.
{
"success": true,
"data": {
"business_hours": null
}
}
business_hours 구조
| 키 | 설명 |
|---|---|
timezone | IANA 타임존 (예: Asia/Seoul) |
schedule | 요일별 배열. day는 정수 0~6 (0=일요일), is_open은 영업 여부, ranges는 영업 시간대 배열 |
ranges[] | open_time·close_time ("HH:MM" KST, close_time은 자정 종료를 뜻하는 "24:00" 가능) |
holidays | 한국 공휴일 프리셋 날짜 배열. "YYYY-MM-DD" 문자열 배열입니다. 대시보드에서 「공휴일 포함」을 끄면 빈 배열입니다 |
custom_holidays | 워크스페이스가 직접 정의한 휴일 객체 배열 (아래 표 참조) |
이 구조는 현재 대시보드가 저장하는 형식입니다. 이 엔드포인트는 저장된 JSON을 그대로 전달합니다. 따라서 새 대시보드에서 한 번도 다시 저장하지 않은 레거시 워크스페이스는 최상위 enabled 키를 포함하고 schedule·holidays·custom_holidays 키가 없을 수 있습니다. 모든 키가 있다고 가정하지 마세요.
custom_holidays[] 객체 구조
| 키 | 설명 |
|---|---|
id | UUID v4 |
name | 휴일 이름 (40자 이하, 빈 문자열 가능) |
start_date | 시작일 "YYYY-MM-DD" (KST) |
end_date | 종료일 "YYYY-MM-DD" (KST, 범위 포함) |
closed | true면 해당 기간 상담 불가(대시보드 「휴무」), false면 open_time~close_time으로 운영(대시보드 「운영시간 변경」) |
open_time·close_time | "HH:MM". closed가 false일 때만 존재하는 키입니다 |
워크스페이스가 삭제된 상태에서 요청하면 404 NOT_FOUND를 반환합니다.