레코드 내보내기 상태 조회
작성일 2026.04.23 | 수정일 2026.04.23
GET/crm-core/v1/records/export/:jobId/status
비동기 내보내기 작업(POST /crm-core/v1/records/export/request 의 async 응답)의 진행 상태와 다운로드 URL을 조회한다. 완료(completed) 상태일 때 downloadUrl에 서명 URL이 채워진다.
Path Params
| Name | Type | Required | Description |
|---|---|---|---|
| jobId | string | 내보내기 요청 시 발급된 작업 ID (UUID v4) |
Response
| Name | Type | Required | Description |
|---|---|---|---|
| status | string | 작업 상태. pending / processing / completed / failed | |
| progress | number | 처리된 레코드 수 (processing·completed 상태에서 제공) | |
| total | number | 전체 대상 레코드 수 | |
| downloadUrl | string | completed 상태에서 생성된 서명 다운로드 URL | |
| error | string | failed 상태의 실패 사유 메시지 |
Structure
코드 예제
const response = await fetch(
'https://api.solapi.com/crm-core/v1/records/export/9f2c7e8d-3b1a-4d5e-8c4f-2b9a1e7f3d6c/status',
{
method: 'GET',
headers: { 'Authorization': 'Bearer ' + TOKEN }
}
);
const { status, downloadUrl } = await response.json();
if (status === 'completed') {
window.open(downloadUrl);
}
import requests, time
while True:
response = requests.get(
'https://api.solapi.com/crm-core/v1/records/export/9f2c7e8d-3b1a-4d5e-8c4f-2b9a1e7f3d6c/status',
headers={'Authorization': f'Bearer {TOKEN}'}
)
data = response.json()
if data['status'] in ('completed', 'failed'):
break
time.sleep(3)
curl -X GET 'https://api.solapi.com/crm-core/v1/records/export/9f2c7e8d-3b1a-4d5e-8c4f-2b9a1e7f3d6c/status' \
-H 'Authorization: Bearer YOUR_TOKEN'
lightbulb
상태 조회는 3~5초 간격의 폴링 또는 작업 요청 직후의 지연 호출 정도로 충분하다. 상태 저장소는 성공 이후 24시간, 실패 이후 7일 보존된다.
lightbulb
알 수 없는 `jobId`를 전달하면 `{ "status": "failed", "error": "작업을 찾을 수 없습니다." }` 형태로 응답한다.