비동기 메시지 통계 내보내기
exportMessagesStatistics는 메시지 기록 및 통계를 서버의 CSV 파일로 내보냅니다. messages:list가 처리할 수 없는 대규모 또는 전체 계정 데이터를 가져올 때 사용하세요.
messages:list 대신 export를 사용해야 하는 경우
Anchor link to제한된 기간의 실시간 페이징 조회를 위해서는 messages:list를 사용하세요. 결과가 messages:list의 딥 페이징 제한(page × per_page > 100000)을 초과하거나, 페이징된 JSON 대신 다운로드 가능한 단일 파일을 목표로 할 때는 exportMessagesStatistics를 사용하세요. 내보내기는 결과를 하나의 응답에 보관하는 대신 디스크의 파일로 스트리밍하기 때문에 date_range나 행 수에 제한이 없습니다.
내보내기 흐름 작동 방식
Anchor link tomessages:list와 동일한 필터로export를 호출합니다. 응답은 파일이 생성되기 전에 즉시uid작업 식별자를 반환합니다.- 해당
uid로status를 폴링하여STATUS_SUCCESS(또는STATUS_FAILED)를 보고할 때까지 기다립니다. - 동일한
uid로result를 호출하여 생성된 파일 이름을 가져옵니다. - 이름으로 파일을 다운로드합니다.
애플리케이션의 최근 내보내기 작업을 조회하려면 lastTasks를 사용하고, 작업을 취소하거나 파일을 조기에 제거하려면 delete를 사용하세요.
내보내기 라이프사이클에는 5개의 메서드와 일반 다운로드 엔드포인트가 있습니다:
| 메서드 | 설명 |
|---|---|
exportMessagesStatistics/export | 내보내기를 대기열에 추가하고 작업 uid를 반환합니다. |
exportMessagesStatistics/status | 작업 진행 상황을 확인합니다. |
exportMessagesStatistics/result | 작업이 완료되면 생성된 파일 이름을 반환합니다. |
exportMessagesStatistics/lastTasks | 애플리케이션의 최근 내보내기 작업을 나열합니다. |
exportMessagesStatistics/delete | 보존 기간이 만료되기 전에 작업을 취소하거나 파일을 제거합니다. |
| 다운로드 | 생성된 CSV 파일을 이름으로 다운로드합니다. |
export
Anchor link to메시지 기록 내보내기를 대기열에 추가하고 즉시 작업 식별자를 반환합니다.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/export
요청에는 서버 API 토큰이 필요합니다:
| 이름 | 필수 | 설명 |
|---|---|---|
Authorization | 예 | 서버 API 토큰. 다음 형식으로 제공해야 합니다: Authorization: Api <Server Key>. |
요청 본문 매개변수
Anchor link to요청 본문은 다음 필드를 허용합니다:
| 이름 | 필수 | 유형 | 설명 |
|---|---|---|---|
type | 예 | String | <code>"TASK_TYPE_EXPORT<wbr/>_MESSAGES_V2"</code>여야 합니다. |
export_messages | 예 | Object | 내보내기 매개변수, 아래에 설명되어 있습니다. |
export_messages | 참고 참조 | String | Pushwoosh 애플리케이션 코드. app_group_code가 설정되지 않은 경우 필수입니다. |
export_messages | 참고 참조 | String | 애플리케이션 그룹 코드, 그룹의 모든 앱에 걸쳐 내보냅니다. application_code가 설정되지 않은 경우 필수입니다. |
export_messages | 아니요 | String | 메시지 제목 및 내용에 대한 자유 텍스트 검색. |
export_messages | 아니요 | Object | 메시지 필터, 아래에 설명되어 있습니다. 전체 계정 기록을 내보내려면 생략하세요. |
export_messages | 아니요 | Array | CSV에 포함할 열, 아래에 설명되어 있습니다. |
export_messages_v2.filters는 다음을 허용합니다:
| 이름 | 유형 | 설명 |
|---|---|---|
statuses | Array | 포함할 메시지 상태. 가능한 값
|
platforms | Array | messages:list에서 사용하는 플랫폼 이름 문자열이 아닌 플랫폼 코드 (숫자, 예: iOS의 경우 1). |
sent_date | Object | 전송 날짜로 필터링된 보고 기간: {"date_from": "YYYY-MM-DD", "date_to": "YYYY-MM-DD"}. |
created_date | Object | 메시지 생성 날짜로 필터링된 보고 기간, sent_date와 동일한 형식. |
created_via | Array | 메시지 소스. 가능한 값
|
segments | Array | 메시지가 전송된 필터 코드. |
campaigns | Array | 캠페인 코드. messages:list와 달리 단일 코드가 아닌 목록을 사용합니다. |
message_id | String (uint64) | 따옴표로 묶인 단일 숫자 메시지 ID. messages:list와 달리 내보내기는 배열이 아닌 하나의 ID를 사용합니다. |
message_code | String | 단일 메시지 코드. |
export_messages_v2.properties는 CSV에 포함될 열을 선택합니다.
가능한 값
"EXPORT_MESSAGE_PROPERTY_ID""EXPORT_MESSAGE_PROPERTY_TIMESTAMP""EXPORT_MESSAGE_PROPERTY_CONTENT""EXPORT_MESSAGE_PROPERTY_TITLE""EXPORT_MESSAGE_PROPERTY_APPLICATIONS""EXPORT_MESSAGE_PROPERTY_STATUS""EXPORT_MESSAGE_PROPERTY_PLATFORMS""EXPORT_MESSAGE_PROPERTY_SOURCE""EXPORT_MESSAGE_PROPERTY_FILTER""EXPORT_MESSAGE_PROPERTY_SUBSCRIPTION_SEGMENTS""EXPORT_MESSAGE_PROPERTY_SENT""EXPORT_MESSAGE_PROPERTY_OPENED""EXPORT_MESSAGE_PROPERTY_ERRORS""EXPORT_MESSAGE_PROPERTY_RECIPIENTS""EXPORT_MESSAGE_PROPERTY_DELIVERED""EXPORT_MESSAGE_PROPERTY_TOTAL_DELIVERED""EXPORT_MESSAGE_PROPERTY_TOTAL_OPENED""EXPORT_MESSAGE_PROPERTY_TOTAL_CLICKS""EXPORT_MESSAGE_PROPERTY_CLICKS""EXPORT_MESSAGE_PROPERTY_UNSUBSCRIBED"
요청 예시
Anchor link to{ "type": "TASK_TYPE_EXPORT_MESSAGES_V2", "export_messages_v2": { "application_code": "XXXXX-XXXXX", "filters": { "created_date": { "date_from": "2026-01-01", "date_to": "2026-06-30" }, "statuses": ["MESSAGE_STATUS_DONE"], "platforms": [1, 3] }, "properties": [ "EXPORT_MESSAGE_PROPERTY_ID", "EXPORT_MESSAGE_PROPERTY_TIMESTAMP", "EXPORT_MESSAGE_PROPERTY_STATUS", "EXPORT_MESSAGE_PROPERTY_PLATFORMS", "EXPORT_MESSAGE_PROPERTY_SENT", "EXPORT_MESSAGE_PROPERTY_OPENED" ] }}{ "uid": "177458"}{ "error": "account not found"}status
Anchor link to내보내기 작업의 진행 상황을 반환합니다.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/status
요청 본문 매개변수
Anchor link toexport에서 반환된 작업 식별자를 전달합니다:
| 이름 | 필수 | 유형 | 설명 |
|---|---|---|---|
uid | 예 | String (int64) | export 응답의 작업 식별자, 예: "177458". |
요청 예시
Anchor link to{ "uid": "177458"}{ "status": "STATUS_SUCCESS", "progress": 1}status는 "STATUS_PENDING", "STATUS_SUCCESS" 또는 "STATUS_FAILED" 중 하나입니다. progress는 0과 1 사이의 분수입니다. result를 호출하기 전에 status가 "STATUS_SUCCESS"에 도달할 때까지 폴링하세요.
result
Anchor link to작업이 완료되면 생성된 파일 이름을 반환합니다.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/result
요청 본문 매개변수
Anchor link toexport에서 반환된 동일한 작업 식별자를 전달합니다:
| 이름 | 필수 | 유형 | 설명 |
|---|---|---|---|
uid | 예 | String (int64) | export 응답의 작업 식별자, 예: "177458". |
요청 예시
Anchor link to{ "uid": "177458"}{ "export_messages_v2_result": { "file": "Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv" }}status가 "STATUS_SUCCESS"를 보고하기 전에 result를 호출하면 빈 결과가 반환됩니다. file 값을 그대로 다운로드 엔드포인트에 전달하세요.
lastTasks
Anchor link to애플리케이션의 최근 내보내기 작업을 최신순으로 나열합니다.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/lastTasks
요청 본문 매개변수
Anchor link to모든 매개변수는 선택적 필터입니다. 토큰이 액세스할 수 있는 모든 작업을 나열하려면 모두 생략하세요:
| 이름 | 필수 | 유형 | 설명 |
|---|---|---|---|
application | 아니요 | String | Pushwoosh 애플리케이션 코드. 토큰이 액세스할 수 있는 모든 애플리케이션의 작업을 나열하려면 생략하세요. |
types | 아니요 | Array | 특정 작업 유형으로 제한합니다. 메시지 내보내기만 보려면 [“TASK_TYPE_EXPORT를 사용하세요. |
campaign | 아니요 | String | 캠페인 코드로 필터링합니다. |
message_id | 아니요 | String (uint64) | 따옴표로 묶인 단일 숫자 메시지 ID로 필터링합니다. |
message_code | 아니요 | String | 단일 메시지 코드로 필터링합니다. |
limit | 아니요 | Integer | 반환할 최대 작업 수. |
timestamp_from | 아니요 | String | 이 타임스탬프(RFC 3339) 이후에 생성된 작업만 반환합니다. |
요청 예시
Anchor link to{ "application": "XXXXX-XXXXX", "types": ["TASK_TYPE_EXPORT_MESSAGES_V2"], "limit": 10}{ "tasks": [ { "id": "177458", "timestamp": "2026-08-13T12:00:00Z", "status": "STATUS_SUCCESS", "requested_by_user": "user@example.com", "export_messages_v2": { "application_code": "XXXXX-XXXXX" }, "export_messages_v2_result": { "file": "Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv" } } ]}delete
Anchor link to7일 보존 기간이 만료되기 전에 작업과 해당 파일을 삭제합니다.
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/delete
요청 본문 매개변수
Anchor link toexport에서 반환된 작업 식별자를 전달합니다:
| 이름 | 필수 | 유형 | 설명 |
|---|---|---|---|
uid | 예 | String (int64) | export 응답의 작업 식별자, 예: "177458". |
요청 예시
Anchor link to{ "uid": "177458"}{}다운로드
Anchor link toresult에서 생성된 CSV 파일을 이름으로 다운로드합니다.
GET https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/<file>
다른 메서드와 동일한 방식으로 인증하거나 활성 Control Panel 세션에 의존합니다:
| 이름 | 필수 | 설명 |
|---|---|---|
Authorization | 예 | 서버 API 토큰, 다른 exportMessagesStatistics 메서드와 동일한 형식: Authorization: Api <Server Key> (Api 스킴은 대소문자를 구분하지 않습니다). Authorization 헤더가 없고 로그인된 Control Panel 세션이 없는 요청은 401 Unauthorized를 받습니다. |
<file>을 result 응답의 정확한 file 값으로 바꾸세요. 예:
https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv파일은 properties에서 선택한 열을 포함하는 CSV입니다. 내보내기가 완료된 후 7일 동안 사용할 수 있으며, 그 후 정리 작업이 파일을 제거하고 URL은 더 이상 확인되지 않습니다.