택배 계정을 등록하면 courierAccountKey가 발급됩니다. 이 키는 배송 등록, 대량 업로드 등 택배 계정이 필요한 API 호출 시 요청 본문에 포함하여 사용합니다.
🔒 보안 주의사항
Secret Key는 절대 클라이언트 사이드 코드(브라우저)에 노출하지 마세요. 서버에서만 사용해야 합니다.
에러 코드
API 응답의 에러는 용도에 따라 3가지로 구분됩니다.
API 에러 코드
최상위 응답의 errorCode 필드로 반환됩니다.
공통
코드
HTTP
설명
UNAUTHORIZED
401
API 키 누락 또는 유효하지 않음
FORBIDDEN
403
권한 없음 (유효한 키지만 접근 불가)
MISSING_PARAMS
400
필수 파라미터 누락
INVALID_PARAMS
400
파라미터 형식 또는 값이 잘못됨
NOT_FOUND
404
요청한 리소스가 없음
RATE_LIMITED
429
요청 횟수 초과
INTERNAL_ERROR
500
서버 내부 오류
NOT_IMPLEMENTED
501
해당 택배사에서 지원하지 않는 기능
회원가입 / 이메일 인증
코드
HTTP
설명
EMAIL_ALREADY_EXISTS
409
이미 가입된 이메일
택배사 계정
코드
HTTP
설명
COURIER_OTP_REQUIRED
202
OTP 인증 필요 (추가 단계 요구)
COURIER_AUTH_FAILED
401
택배사 로그인 실패 (자격증명 오류)
웹훅
코드
HTTP
설명
CONFLICT
409
엔드포인트 URL 중복
WEBHOOK_ENDPOINT_LIMIT
429
웹훅 엔드포인트 등록 한도 초과
WEBHOOK_ENDPOINT_UNREACHABLE
400
엔드포인트 URL 도달 불가 또는 200 응답 실패
INVALID_ITEMS
400
items 배열 내 항목이 잘못됨 (상세는 data에)
배송조회 에러 코드
송장조회 API (/v1/tracking/trace)의 results[].error.code 필드로 반환됩니다.
코드
설명
과금
MISSING_PARAMS
필수 파라미터 누락 (courierCode, trackingNumber)
X
INVALID_TRACKING_NUMBER
송장번호 형식 불일치 (자릿수, checksum 등)
X
UNSUPPORTED_COURIER
지원하지 않는 택배사 코드
X
NOT_FOUND
택배사 조회 결과 없음 (택배사 API 호출 완료)
O
TRACKING_FAILED
시스템/네트워크 오류 (크롤러 실패, 타임아웃 등)
X
💡 과금 기준
billable 필드는 해당 요청이 과금 대상인지를 나타냅니다. 택배사 서버에 실제로 조회 요청이 전달된 경우(NOT_FOUND)에만 과금되며, 형식 오류나 시스템 장애는 과금되지 않습니다.
해외 택배사 조회는 1건당 10회로 과금됩니다. (예: 해외 택배 1건 조회 = API 호출 10회 차감)
택배사 계정 에러 코드
택배사 계정 등록/인증 API에서 반환됩니다.
코드
설명
TOKEN_EXPIRED
토큰 만료 (재인증 필요)
SESSION_EXPIRED
세션 만료 (재인증 필요)
AUTH_FAILED
인증 실패 (ID/PW 오류)
OTP_REQUIRED
OTP 인증 필요
API_ERROR
택배사 API 호출 실패
NETWORK_ERROR
네트워크 오류
RATE_LIMIT_EXCEEDED
Rate Limit 초과
UNSUPPORTED_FEATURE
지원하지 않는 기능
INVALID_REQUEST
잘못된 요청
UNKNOWN_ERROR
알 수 없는 오류
요청 제한 (Rate Limits)
API의 안정적인 운영을 위해 플랜별 요청 한도와 IP 기반 전역 제한이 적용됩니다.
플랜별 요청 한도
Secret Key에 설정된 플랜에 따라 분/시/일/월 단위로 요청 횟수가 제한됩니다.
플랜
월
일
시간
분
무료
100
10
10
5
스타터
10,000
1,000
200
20
플러스
50,000
5,000
1,000
50
그로스
100,000
10,000
2,000
100
프로
300,000
30,000
5,000
200
비즈니스
1,000,000
100,000
15,000
500
엔터프라이즈
맞춤 설정 (문의)
IP별 전역 제한
인증 여부와 무관하게, 동일 IP에서 분당 최대 60회까지 요청할 수 있습니다. 이 제한은 모든 플랜에 동일하게 적용됩니다.
제한 초과 시 응답
요청 제한에 도달하면 429 Too Many Requests 응답이 반환됩니다.
{
"isSuccess": false,
"statusCode": 429,
"errorCode": "RATE_LIMITED",
"error": "Tracking 분당 한도 초과 — 현재 분당 20회 제한이 적용되어 있습니다.",
"limitType": "minute", // "ip" | "minute" | "hour" | "day" | "month"
"limit": 20 // 해당 단위의 최대 허용 횟수
}
필드
설명
limitType
어떤 단위의 제한에 걸렸는지 — ip, minute, hour, day, month
limit
해당 단위의 최대 허용 횟수
retryAfterSeconds
(IP 제한 시) 재시도까지 남은 초
reason
사람이 읽을 수 있는 상세 사유
사용량에 포함되지 않는 API
다음 API는 요청 한도에 포함되지 않습니다:
웹훅 구독 조회 — GET /v1/webhooks/subscriptions
웹훅 엔드포인트 관리 — GET/POST/PUT/DELETE /v1/webhooks/endpoints
택배사 목록 조회 — GET /v1/tracking/couriers
대량 조회 시 권장사항
배송 상태를 대량으로 추적하려면 웹훅 구독을 사용하세요.
POST /v1/tracking/trace는 단발성 조회(쇼핑몰에서 고객에게 조회 기능 제공 등)에 적합합니다.
주기적으로 배송 상태를 DB에 업데이트해야 한다면, POST /v1/webhooks/register로 웹훅 구독을 등록하면
배송 상태 변경 시 자동으로 콜백을 받을 수 있어 API 호출 횟수를 크게 줄일 수 있습니다.
송장번호 배송 조회
송장번호만으로 배송 현황을 실시간 조회합니다. 택배사 계정이 없어도 사용 가능합니다.
💡 이 API는 단발성 조회에 적합합니다.
쇼핑몰에서 고객에게 배송 현황 조회 기능을 제공하는 등 건별 조회 용도로 설계되었습니다.
대량의 송장을 주기적으로 추적하여 DB를 업데이트해야 한다면,
웹훅 구독 (POST /v1/webhooks/register)을 사용하세요.
배송 상태가 변경될 때마다 자동으로 콜백을 받을 수 있어 API 호출 횟수를 크게 줄이고, 요청 제한에 걸릴 위험도 낮출 수 있습니다.
요청
POST
/v1/tracking/trace
Headers
이름
값
설명
Authorization
Bearer {apiKey}:{secretKey}
필수
Content-Type
application/json
JSON 형식
Request Body
필드
타입
필수
설명
items
Array
필수
조회할 송장 목록 (최대 10개)
items[].courierCode
String
필수
택배사 코드 (lotte, cj, hanjin, post, kyungdong, daesin, logen, hapdong, coupang, woori)
items[].trackingNumber
String
필수
송장번호 (12자리)
items[].clientId
String
선택
클라이언트 주문 ID 등 매핑용 식별자 (응답에 그대로 반환됨)
includeProgresses
Boolean
선택
배송 진행 내역 포함 여부 (기본값: true, false 시 progresses 빈 배열 반환)
예시 요청
tracking-api ~ terminal
// npm i deliveryapi 으로 설치하면 Node.js에서 바로 사용할 수 있어요
import { DeliveryAPIClient } from 'deliveryapi';
const client = new DeliveryAPIClient({
apiKey: '__API_KEY__',
secretKey: '__SECRET_KEY__',
});
const result = await client.tracking.trace({
items: [
{
clientId: 'ORDER-2024-001',
courierCode: 'lotte',
trackingNumber: '123456789012',
}
]
});
console.log(result);
# pip install deliveryapi 으로 설치하면 Python에서 바로 사용할 수 있어요
from deliveryapi import DeliveryAPIClient
client = DeliveryAPIClient(
api_key="__API_KEY__",
secret_key="__SECRET_KEY__",
)
result = client.tracking.trace(
items=[
{
"clientId": "ORDER-2024-001",
"courierCode": "lotte",
"trackingNumber": "123456789012",
}
]
)
print(result)
각 아이템별 에러는 results[].error.code로 반환됩니다. 배송조회 에러 코드를 참조하세요.
응답 필드 설명
최상위 구조
필드
타입
설명
isSuccess
Boolean
API 호출 성공 여부 (인증 실패 등 HTTP 에러 시 false)
data.results
Array
각 송장번호별 조회 결과 배열
data.summary.total
Number
요청한 총 송장 수
data.summary.successful
Number
조회 성공 건수
data.summary.failed
Number
조회 실패 건수
data.summary.billable
Number
과금 대상 건수 (성공 + NOT_FOUND)
results 항목 (공통)
필드
타입
설명
clientId
String?
요청 시 전달된 클라이언트 주문 ID (요청에 포함된 경우만 반환)
success
Boolean
개별 조회 성공 여부
data
Object?
성공 시 배송 조회 데이터 (아래 data 필드 참조)
error
Object?
실패 시 에러 정보 (code, message, courierCode, trackingNumber, billable)
cache
Object?
캐시 메타데이터 (fromCache: boolean, cachedAt?: string)
results[].data 필드 (성공 시)
필드
타입
설명
trackingNumber
String
송장번호
courierCode
String
택배사 코드 (lotte, cj, hanjin, post, kyungdong, daesin, logen, hapdong, coupang, woori)
courierName
String
택배사 이름 (예: "롯데택배", "CJ대한통운")
deliveryStatus
String
정규화된 배송 상태 코드 (아래 상태 코드 표 참조)
deliveryStatusText
String
사용자에게 표시할 상태 텍스트 (예: "배송중", "배송완료")
isDelivered
Boolean
배송 완료 여부 (true/false)
senderName
String?
보내는 사람 (선택)
receiverName
String?
받는 사람 (선택)
productName
String?
상품명 (선택)
dateLastProgress
String
마지막 배송 이력 시간 (yyyy-MM-dd HH:mm:ss)
progresses
Array
배송 진행 이력 배열
queriedAt
String
조회 시점 (ISO 8601)
progresses 배열 항목
필드
타입
설명
dateTime
String
처리 시간 (yyyy-MM-dd HH:mm:ss)
location
String
처리 위치 (터미널, 영업소 등)
status
String
상태 설명 (택배사 원본 텍스트)
statusCode
String
정규화된 상태 코드
description
String?
상세 설명 (선택)
배송 상태 코드
코드
설명
PENDING
접수 대기
REGISTERED
접수 완료
PICKUP_READY
집하 준비
PICKED_UP
집하 완료
IN_TRANSIT
배송중
OUT_FOR_DELIVERY
배송 출발
DELIVERED
배송 완료
FAILED
배송 실패
RETURNED
반송
CANCELLED
취소
HOLD
보류
UNKNOWN
알 수 없음
택배사 목록 조회
지원하는 택배사 목록을 조회합니다.
요청
GET
/v1/tracking/couriers
Headers
이름
값
Authorization
Bearer {apiKey}:{secretKey}
예시 요청
courier-api ~ terminal
// npm i deliveryapi 으로 설치하면 Node.js에서 바로 사용할 수 있어요
import { DeliveryAPIClient } from 'deliveryapi';
const client = new DeliveryAPIClient({
apiKey: '__API_KEY__',
secretKey: '__SECRET_KEY__',
});
const result = await client.tracking.getCouriers();
console.log(result.couriers);
# pip install deliveryapi 으로 설치하면 Python에서 바로 사용할 수 있어요
from deliveryapi import DeliveryAPIClient
client = DeliveryAPIClient(
api_key="__API_KEY__",
secret_key="__SECRET_KEY__",
)
result = client.tracking.get_couriers()
print(result["couriers"])
curl -X GET "https://api.deliveryapi.co.kr/v1/tracking/couriers" \
-H "Authorization: Bearer __API_KEY__:__SECRET_KEY__"
{
"isSuccess": true,
"message": "webhookSecret은 지금만 확인할 수 있습니다. 분실 시 시크릿 재발급이 필요합니다.",
"data": {
"endpointId": "ep_20260101_120000_a1b2c3d4e5f6a7b8",
"url": "https://example.com/webhooks/delivery",
"name": "배송 알림 시스템",
"webhookSecret": "whsec_0123456789abcdef...",
"dateCreated": "2026-01-01T12:00:00.000Z"
}
}
🔒 중요: webhookSecret 보관
webhookSecret은 웹훅 서명 검증에 필요하며, 생성 시 단 1회만 평문으로 반환됩니다. 안전한 곳에 보관하세요. 분실 시 시크릿 재발급 API를 사용하세요.
2. 엔드포인트 목록 조회
등록된 웹훅 엔드포인트 목록을 조회합니다.
GET
/v1/webhooks/endpoints
예시 요청
list-endpoints ~ terminal
// npm i deliveryapi 으로 설치하면 Node.js에서 바로 사용할 수 있어요
import { DeliveryAPIClient } from 'deliveryapi';
const client = new DeliveryAPIClient({
apiKey: '__API_KEY__',
secretKey: '__SECRET_KEY__',
});
const result = await client.webhooks.endpoints.list();
console.log(result.endpoints);
# pip install deliveryapi 으로 설치하면 Python에서 바로 사용할 수 있어요
from deliveryapi import DeliveryAPIClient
client = DeliveryAPIClient(
api_key="__API_KEY__",
secret_key="__SECRET_KEY__",
)
result = client.webhooks.endpoints.list()
print(result["endpoints"])
curl -X GET "https://api.deliveryapi.co.kr/v1/webhooks/endpoints" \
-H "Authorization: Bearer __API_KEY__:__SECRET_KEY__"
// npm i deliveryapi 으로 설치하면 Node.js에서 바로 사용할 수 있어요
import { DeliveryAPIClient } from 'deliveryapi';
const client = new DeliveryAPIClient({
apiKey: '__API_KEY__',
secretKey: '__SECRET_KEY__',
});
await client.webhooks.endpoints.delete('ep_20260101_120000_a1b2c3d4e5f6a7b8');
# pip install deliveryapi 으로 설치하면 Python에서 바로 사용할 수 있어요
from deliveryapi import DeliveryAPIClient
client = DeliveryAPIClient(
api_key="__API_KEY__",
secret_key="__SECRET_KEY__",
)
client.webhooks.endpoints.delete("ep_20260101_120000_a1b2c3d4e5f6a7b8")
기존 시크릿을 새 값으로 교체합니다. 재발급 후 기존 시크릿으로 서명된 웹훅은 검증에 실패합니다.
POST
/v1/webhooks/endpoints/{endpointId}/rotate
Request Body
필드
타입
필수
설명
webhookSecret
String
선택
새 시크릿 값 (미입력 시 자동 생성)
예시 요청
rotate-secret ~ terminal
// npm i deliveryapi 으로 설치하면 Node.js에서 바로 사용할 수 있어요
import { DeliveryAPIClient } from 'deliveryapi';
const client = new DeliveryAPIClient({
apiKey: '__API_KEY__',
secretKey: '__SECRET_KEY__',
});
const result = await client.webhooks.endpoints.rotateSecret(
'ep_20260101_120000_a1b2c3d4e5f6a7b8',
{ webhookSecret: 'whsec_my_custom_secret_value_here' }
);
// 지정한 시크릿이 그대로 반환됩니다 — 안전하게 보관하세요!
console.log(result.webhookSecret);
# pip install deliveryapi 으로 설치하면 Python에서 바로 사용할 수 있어요
from deliveryapi import DeliveryAPIClient
client = DeliveryAPIClient(
api_key="__API_KEY__",
secret_key="__SECRET_KEY__",
)
result = client.webhooks.endpoints.rotate_secret(
"ep_20260101_120000_a1b2c3d4e5f6a7b8",
webhook_secret="whsec_my_custom_secret_value_here",
)
# 지정한 시크릿이 그대로 반환됩니다 — 안전하게 보관하세요!
print(result["webhookSecret"])
구독형 (recurring: true): 등록 즉시 1회 크롤 후, 이후 매 1시간 간격으로 자동 폴링
일회성 (recurring: false): 즉시 1회 크롤 후 결과 웹훅 전송 → 자동 종료
야간 중단: 22:00~07:00 KST 폴링 자동 중단
14일 제한: 등록 후 14일이 지나면 자동으로 구독 종료
자동 종료: 모든 운송장이 배달 완료되면 tracking.completed 전송 후 자동 종료
7. 구독 목록 조회
등록된 추적 구독 목록을 페이지 단위로 조회합니다.
GET
/v1/webhooks/subscriptions
Query Parameters
파라미터
타입
필수
설명
cursor
String
선택
페이지네이션 커서 (이전 응답의 nextCursor)
limit
Number
선택
페이지 크기 (1~100, 기본값 50)
status
String
선택
상태 필터 (active, completed, cancelled)
from
String
선택
시작일 (YYYY-MM-DD) — 해당일 이후 등록된 구독
to
String
선택
종료일 (YYYY-MM-DD) — 해당일까지 등록된 구독
예시 요청
list-subscriptions ~ terminal
// npm i deliveryapi 으로 설치하면 Node.js에서 바로 사용할 수 있어요
import { DeliveryAPIClient } from 'deliveryapi';
const client = new DeliveryAPIClient({
apiKey: '__API_KEY__',
secretKey: '__SECRET_KEY__',
});
const result = await client.webhooks.subscriptions.list({
status: 'active',
limit: 20,
});
console.log(result.subscriptions);
# pip install deliveryapi 으로 설치하면 Python에서 바로 사용할 수 있어요
from deliveryapi import DeliveryAPIClient
client = DeliveryAPIClient(
api_key="__API_KEY__",
secret_key="__SECRET_KEY__",
)
result = client.webhooks.subscriptions.list(status="active", limit=20)
print(result["subscriptions"])
curl -X GET "https://api.deliveryapi.co.kr/v1/webhooks/subscriptions?status=active&limit=20" \
-H "Authorization: Bearer __API_KEY__:__SECRET_KEY__"
nextCursor는 다음 페이지가 있을 때만 포함됩니다. 마지막 페이지에서는 이 필드가 생략됩니다. 다음 페이지 조회 시 cursor 쿼리 파라미터에 이 값을 전달하세요.
8. 구독 상세 조회
특정 구독의 상세 정보와 각 운송장의 현재 추적 상태를 조회합니다.
GET
/v1/webhooks/subscriptions/{requestId}
예시 요청
get-subscription ~ terminal
// npm i deliveryapi 으로 설치하면 Node.js에서 바로 사용할 수 있어요
import { DeliveryAPIClient } from 'deliveryapi';
const client = new DeliveryAPIClient({
apiKey: '__API_KEY__',
secretKey: '__SECRET_KEY__',
});
const detail = await client.webhooks.subscriptions.get(
'req_20260101_120000_b2c3d4e5f6a7b8c9',
);
console.log(detail.items);
# pip install deliveryapi 으로 설치하면 Python에서 바로 사용할 수 있어요
from deliveryapi import DeliveryAPIClient
client = DeliveryAPIClient(
api_key="__API_KEY__",
secret_key="__SECRET_KEY__",
)
detail = client.webhooks.subscriptions.get(
"req_20260101_120000_b2c3d4e5f6a7b8c9",
)
print(detail["items"])
curl -X GET "https://api.deliveryapi.co.kr/v1/webhooks/subscriptions/req_20260101_120000_b2c3d4e5f6a7b8c9" \
-H "Authorization: Bearer __API_KEY__:__SECRET_KEY__"
trackingData: 조회 성공 시 배송 조회 API와 동일한 형식의 배송 데이터 (선택 필드)
error: 조회 실패 시 에러 메시지 (선택 필드)
9. 구독 취소
진행 중인 구독을 취소합니다.
DELETE
/v1/webhooks/subscriptions/{requestId}
예시 요청
cancel-subscription ~ terminal
// npm i deliveryapi 으로 설치하면 Node.js에서 바로 사용할 수 있어요
import { DeliveryAPIClient } from 'deliveryapi';
const client = new DeliveryAPIClient({
apiKey: '__API_KEY__',
secretKey: '__SECRET_KEY__',
});
await client.webhooks.subscriptions.cancel(
'req_20260101_120000_b2c3d4e5f6a7b8c9',
);
# pip install deliveryapi 으로 설치하면 Python에서 바로 사용할 수 있어요
from deliveryapi import DeliveryAPIClient
client = DeliveryAPIClient(
api_key="__API_KEY__",
secret_key="__SECRET_KEY__",
)
client.webhooks.subscriptions.cancel(
"req_20260101_120000_b2c3d4e5f6a7b8c9",
)
// npm i deliveryapi 으로 설치하면 Node.js에서 바로 사용할 수 있어요
import { DeliveryAPIClient } from 'deliveryapi';
const client = new DeliveryAPIClient({
apiKey: '__API_KEY__',
secretKey: '__SECRET_KEY__',
});
const accounts = await client.courier.accounts.list();
const active = accounts.filter(a => a.isActive);
console.log(active);
# pip install deliveryapi 으로 설치하면 Python에서 바로 사용할 수 있어요
from deliveryapi import DeliveryAPIClient
client = DeliveryAPIClient(
api_key="__API_KEY__",
secret_key="__SECRET_KEY__",
)
accounts = client.courier.accounts.list()
active = [a for a in accounts if a["isActive"]]
print(active)
curl -X GET "https://api.deliveryapi.co.kr/v1/courier/accounts" \
-H "Authorization: Bearer __API_KEY__:__SECRET_KEY__"
// npm i deliveryapi 으로 설치하면 Node.js에서 바로 사용할 수 있어요
import { DeliveryAPIClient } from 'deliveryapi';
const client = new DeliveryAPIClient({
apiKey: '__API_KEY__',
secretKey: '__SECRET_KEY__',
});
const detail = await client.courier.accounts.get('WYA5Rk2hUGKkYNW5Qnkn');
console.log(detail);
# pip install deliveryapi 으로 설치하면 Python에서 바로 사용할 수 있어요
from deliveryapi import DeliveryAPIClient
client = DeliveryAPIClient(
api_key="__API_KEY__",
secret_key="__SECRET_KEY__",
)
detail = client.courier.accounts.get("WYA5Rk2hUGKkYNW5Qnkn")
print(detail)
curl -X GET "https://api.deliveryapi.co.kr/v1/courier/accounts/WYA5Rk2hUGKkYNW5Qnkn" \
-H "Authorization: Bearer __API_KEY__:__SECRET_KEY__"
// npm i deliveryapi 으로 설치하면 Node.js에서 바로 사용할 수 있어요
import { DeliveryAPIClient } from 'deliveryapi';
const client = new DeliveryAPIClient({
apiKey: '__API_KEY__',
secretKey: '__SECRET_KEY__',
});
await client.courier.accounts.delete('WYA5Rk2hUGKkYNW5Qnkn');
# pip install deliveryapi 으로 설치하면 Python에서 바로 사용할 수 있어요
from deliveryapi import DeliveryAPIClient
client = DeliveryAPIClient(
api_key="__API_KEY__",
secret_key="__SECRET_KEY__",
)
client.courier.accounts.delete("WYA5Rk2hUGKkYNW5Qnkn")
💡 택배사 계정이 필요합니다. courierAccountKey는 계정 등록 시 발급됩니다.
요청
POST
/v1/courier/deliveries/inquiry
Headers
이름
값
Authorization
Bearer {apiKey }: {secretKey }
Content-Type
application/json
Request Body
필드
타입
필수
설명
courierAccountKey
String
필수
택배 계정 키
fromDate
String
필수
조회 시작일 (YYYY-MM-DD)
toDate
String
필수
조회 종료일 (YYYY-MM-DD)
statusFilter
String
선택
상태 필터 (all, delivered, not_delivered, in_transit, pending)
includeDetails
Boolean
선택
상세 정보 포함 여부 (기본 false)
예시 요청
delivery-api ~ terminal
// npm i deliveryapi 으로 설치하면 Node.js에서 바로 사용할 수 있어요
import { DeliveryAPIClient } from 'deliveryapi';
const client = new DeliveryAPIClient({
apiKey: '__API_KEY__',
secretKey: '__SECRET_KEY__',
});
const result = await client.courier.deliveries.inquiry({
courierAccountKey: 'YOUR_ACCOUNT_KEY',
fromDate: '2026-01-01',
toDate: '2026-01-31',
});
console.log(result.items);
console.log(result.summary);
# pip install deliveryapi 으로 설치하면 Python에서 바로 사용할 수 있어요
from deliveryapi import DeliveryAPIClient
client = DeliveryAPIClient(
api_key="__API_KEY__",
secret_key="__SECRET_KEY__",
)
result = client.courier.deliveries.inquiry(
courier_account_key="YOUR_ACCOUNT_KEY",
from_date="2026-01-01",
to_date="2026-01-31",
)
print(result["items"])
print(result["summary"])
warning: 일부 항목의 관리번호(courierDeliveryId) 획득 실패 시 경고 메시지 (선택 필드)
results[].trackingNumber: 송장번호 (택배사에서 발급된 경우)
results[].quantityOriginal: 요청 수량
results[].quantityUploaded: 실제 등록 수량
results[].skipped: 중복으로 스킵 여부 (true 시 skipReason 포함)
업로드 이력 목록
대량 등록 이력 목록을 조회합니다. 날짜 범위로 필터링할 수 있습니다.
요청
GET
/v1/courier/deliveries/bulk-upload-histories
Query 파라미터
필드
타입
필수
설명
providerId
String
필수
택배사 코드 ("lotte")
courierAccountKey
String
선택
특정 계정의 이력만 조회
fromDate
String
선택
시작일 (YYYY-MM-DD)
toDate
String
선택
종료일 (YYYY-MM-DD)
limit
Number
선택
최대 건수 (기본 50)
예시 요청
delivery-api ~ terminal
// npm i deliveryapi 으로 설치하면 Node.js에서 바로 사용할 수 있어요
import { DeliveryAPIClient } from 'deliveryapi';
const client = new DeliveryAPIClient({
apiKey: '__API_KEY__',
secretKey: '__SECRET_KEY__',
});
const { histories } = await client.courier.deliveries.histories.list({
providerId: 'lotte',
fromDate: '2026-01-01',
toDate: '2026-01-31',
});
const completed = histories.filter(h => h.status === 'completed');
console.log(completed);
# pip install deliveryapi 으로 설치하면 Python에서 바로 사용할 수 있어요
from deliveryapi import DeliveryAPIClient
client = DeliveryAPIClient(
api_key="__API_KEY__",
secret_key="__SECRET_KEY__",
)
result = client.courier.deliveries.histories.list(
provider_id="lotte",
from_date="2026-01-01",
to_date="2026-01-31",
)
completed = [h for h in result["histories"] if h["status"] == "completed"]
print(completed)
curl -X GET "https://api.deliveryapi.co.kr/v1/courier/deliveries/bulk-upload-histories?providerId=lotte&fromDate=2026-01-01&toDate=2026-01-31" \
-H "Authorization: Bearer __API_KEY__:__SECRET_KEY__"
// npm i deliveryapi 으로 설치하면 Node.js에서 바로 사용할 수 있어요
import { DeliveryAPIClient } from 'deliveryapi';
const client = new DeliveryAPIClient({
apiKey: '__API_KEY__',
secretKey: '__SECRET_KEY__',
});
const { history, detailItems } = await client.courier.deliveries.histories.get(
'20260320_1430_abc12',
{ courierAccountKey: 'YOUR_ACCOUNT_KEY' },
);
const delivered = detailItems.filter(d => d.isDelivered);
console.log(history);
console.log(`배송완료: ${delivered.length}건`);
# pip install deliveryapi 으로 설치하면 Python에서 바로 사용할 수 있어요
from deliveryapi import DeliveryAPIClient
client = DeliveryAPIClient(
api_key="__API_KEY__",
secret_key="__SECRET_KEY__",
)
result = client.courier.deliveries.histories.get(
"20260320_1430_abc12",
courier_account_key="YOUR_ACCOUNT_KEY",
)
delivered = [d for d in result["detailItems"] if d["isDelivered"]]
print(result["history"])
print(f"배송완료: {len(delivered)}건")
curl -X GET "https://api.deliveryapi.co.kr/v1/courier/deliveries/bulk-upload-histories/20260320_1430_abc12/detail?courierAccountKey=YOUR_ACCOUNT_KEY" \
-H "Authorization: Bearer __API_KEY__:__SECRET_KEY__"