[GET] List Sessions
특정 사용자의 수면 세션 목록을 요청합니다.
Request
URL
GET https://api.asleep.ai/data/v1/sessions
Header
Field  | Type  | Required  | Default  | Description  | 
|---|---|---|---|---|
x-api-key  | String  | O  | API Key  | |
x-user-id  | String  | O  | 발급받은 user id  | |
timezone  | String  | X  | UTC  | 분석 결과의 시간대를 해당 timezone으로 변경해서 반환  | 
Query parameter
- date_gte, date_lte, order_by 등은 session_start_time 기준
 
Field  | Type  | Required  | Default  | Description  | 
|---|---|---|---|---|
date_gte  | String (  | X  | Header의 timezone 기준으로 date_gte 보다 같거나 큰 세션들 반환  | |
date_lte  | String (  | X  | Header의 timezone 기준으로 date_lte 보다 같거나 작은 세션들 반환  | |
order_by  | String (  | X  | 
  | 
  | 
offset  | Int  | X  | 0  | 스킵할 세션 개수  | 
limit  | Int (  | X  | 20  | 받고 싶은 세션 개수  | 
Example
curl "https://api.asleep.ai/data/v1/sessions?date_gte=2022-01-01&offset=10&limit=10&order_by=ASC" -XGET \
  -H "x-api-key: <YOUR_API_KEY>" \
  -H "x-user-id: <USER_ID>"Response
200 OK
- 세션 목록 조회 성공
 
{
    "detail": "OK",
    "result": {
        "timezone": "UTC",
        "sleep_session_list": [
            {
                "session_id": "20250114182518_eq85p",
                "state": "COMPLETE",
                "session_start_time": "2025-01-14T18:25:18+00:00",
                "session_end_time": "2025-01-14T22:55:55+00:00",
                "created_timezone": "Asia/Seoul",
                "unexpected_end_time": null,
                "last_received_seq_num": 540,
                "time_in_bed": 16237
            },
            {
                "session_id": "20250113172906_1zch9",
                "state": "COMPLETE",
                "session_start_time": "2025-01-13T17:29:06+00:00",
                "session_end_time": "2025-01-13T23:00:53+00:00",
                "created_timezone": "Asia/Seoul",
                "unexpected_end_time": null,
                "last_received_seq_num": 661,
                "time_in_bed": 19907
            },
            {
                "session_id": "20250112180001_8sqei",
                "state": "COMPLETE",
                "session_start_time": "2025-01-12T18:00:01+00:00",
                "session_end_time": "2025-01-12T23:03:11+00:00",
                "created_timezone": "Asia/Seoul",
                "unexpected_end_time": null,
                "last_received_seq_num": 605,
                "time_in_bed": 18190
            },
            {
                "session_id": "20250111180000_9sk5t",
                "state": "COMPLETE",
                "session_start_time": "2025-01-11T18:00:00+00:00",
                "session_end_time": "2025-01-11T23:05:08+00:00",
                "created_timezone": "Asia/Seoul",
                "unexpected_end_time": null,
                "last_received_seq_num": 609,
                "time_in_bed": 18308
            },
            {
                "session_id": "20250110180001_csktb",
                "state": "COMPLETE",
                "session_start_time": "2025-01-10T18:00:01+00:00",
                "session_end_time": "2025-01-10T23:05:08+00:00",
                "created_timezone": "Asia/Seoul",
                "unexpected_end_time": null,
                "last_received_seq_num": 609,
                "time_in_bed": 18307
            }
        ]
    }
}Body (result field)
| Field | Type | Description | 
|---|---|---|
| timezone | String | 타임존 | 
| sleep_session_list | List of Sleep Session Objects | 세션 데이터 목록 | 
Sleep Session Object
if state == OPEN: session_end_time은 null
Field  | Type  | Description  | 
|---|---|---|
session_id  | String  | session id  | 
state  | String (  | 세션의 상태  | 
session_start_time  | String (  | 세션 시작 시각  | 
session_end_time  | String (  | 세션 종료 시각  | 
created_timezone  | String  | 세션이 생성된 타임존 (Timezone List)  | 
unexpected_end_time  | String(  | 비정상 세션 종료 시각. 앱 크래시 등으로 세션이 정상적으로 진행 및 종료되지 못했을 경우, 나중에 클라이언트가 unexpected 파라미터를 1로 하여 세션을 종료시킬 경우 해당 시간이 기록됨. 이 경우 end_time은 마지막까지 업로드된 오디오 파일의 순서 번호를 기준으로 계산됨. 따라서 null이 아닐 경우 비정상 세션.  | 
last_received_seq_num  | Int?  | 마지막으로 업로드 받은 오디오 파일의 순서 번호  | 
time_in_bed  | Int (  | 침대에 있었던 시간  | 
400 Bad Request
timezone이 잘못 들어온 경우
{
	"detail": "The invalid timezone is provided"
}Updated 5 months ago
