OPEN API · Purge
시스템 개요
Cache-Purge Open API 서버는 Cache-Purge 기능을 이용하여, Cache 서버에 Caching 되어 있는 Contents를 무효화(Caching된 컨텐츠 TTL값 0 설정)하는 기능을 지원합니다.
고객은 REST 방식의 Client를 이용하여 원격에서 Purge 기능을 이용할 수 있습니다.
지원 기능
| 기능 | 내용 | 비고 |
|---|---|---|
| Purge 실행 | Cache 서버의 Contents 무효화 (Caching된 컨텐츠 TTL값 0 설정) | 최대 50개 object Wildcard Purge 기능 지원 |
| Purge 결과 조회 | Purge 실행 결과 조회 | purgeticket 필요 |
Client 개발 환경
| METHOD | POST / GET |
|---|---|
| URL | https://openapi.cloudn.co.kr/cdnservice/purge/Method_Name |
| 프로토콜 | SSL (HTTPS) — REST (HTTP POST / GET) |
| 지원 형식 | XML JSON |
고객 시스템
→
OpenAPI 서버
→
CDN Edge 서버
→
캐시 삭제 완료
POST
Purge 실행
https://openapi.cloudn.co.kr/cdnservice/purge/PurgeExecution/{request_type}
※ request_type: XML →
PurgeExecution | JSON → PurgeExecution/jsonCache 서버에 Caching 되어 있는 Contents를 무효화합니다. XML 또는 JSON 형식의 요청 본문(Body)을 POST 방식으로 전송합니다.
요청 파라미터
| 구분 | Parameter | Type | Required | Description |
|---|---|---|---|---|
| URL | request_type | String | Y | 요청 형식 지정 PurgeExecution (XML) / PurgeExecution/json (JSON) |
| common | action_date | String | Y | 요청시 현재 시간 (ISO 8601) ex) 2025-10-08T15:19:21+00:00 |
| version | String | Y | API 버전 정보 ex) 1.0.0 | |
| service_name | String | Y | 서비스 명 (default: cdn) | |
| user_id | String | Y | User Portal 계정 ID ex) speedy_dev | |
| 인증 | passwd | String | 택일 | 계정 password |
| cloud_key_value | String | 택일 | 계정 API Key | |
| data | action | String | Y | 실행 type ex) purge |
| purge_domain | String | Y | Purge 대상 도메인 ex) http://www.example.com | |
| purge_url | Array | Y | Purge 대상 Contents 명 (배열) ex) images/test.jpg | |
| client_type | String | 조건부 | 요청 client 종류. 업로드 계정 퍼지 시 필수 ex) web, ftp |
💡 참고: BODY charset은 "UTF-8"로 지정.
purge_url에 한글/특수문자 사용 시 UTF-8로 URL 인코딩하여 전송.응답 파라미터 (POST / GET 공통)
| 구분 | Parameter | Type | Description |
|---|---|---|---|
| common | action_date | String | 요청시 현재 시간 (ISO 8601) |
| version | String | API 버전 정보 | |
| service_name | String | 서비스 명 | |
| data | action | String | 실행 type ex) purge |
| purge_domain | String | Purge 대상 도메인 | |
| result_code | String | 결과 코드 → 에러 코드 참조 | |
| result_msg | String | 결과 메시지 ex) success | |
| purge_url | Array | Purge 대상 Contents 명 (배열) | |
| purgeticket_list | Array | Contents별 고유 key 배열 (각 항목: purge_url + purgeticket) ※ 결과 조회 시 필수 — 반드시 저장 관리 |
⚠️ 주의:
& 문자는 XML 예약문자이므로 응답에서 &로 대체됩니다.Example
📤 요청
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <api_request> <common> <action_date>2025-10-08T15:19:21+00:00</action_date> <version>1.0.0</version> <user_info> <user_id>speedy_dev</user_id> <passwd>1234</passwd> </user_info> <service_name>cdn</service_name> </common> <data> <action>purge</action> <action_info> <client_type>web</client_type> <purge_object> <purge_domain>http://www.example.com</purge_domain> <purge_list> <purge_url>images/test1.gif</purge_url> <purge_url>file/test2.txt</purge_url> </purge_list> </purge_object> </action_info> </data> </api_request>
📥 응답
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <api_response> <common> <action_date>2025-10-08T15:19:21+00:00</action_date> <version>1.0.0</version> <service_name>cdn</service_name> </common> <data> <action>purge</action> <action_result> <purge_domain>http://www.example.com</purge_domain> <result_code>200</result_code> <result_msg>success</result_msg> <purgeticket_list> <purge_url>images/test1.gif</purge_url> <purgeticket>API_20251008110623_4909dfae...</purgeticket> </purgeticket_list> </action_result> </data> </api_response>
📤 요청
{
"api_request": {
"common": {
"user_info": {
"user_id": "speedy_dev",
"passwd": "1234"
},
"action_date": "2025-10-08T15:19:21+00:00",
"version": "1.0.0",
"service_name": "cdn"
},
"data": {
"action": "purge",
"action_info": {
"client_type": "web",
"purge_object": {
"purge_domain": "http://www.example.com",
"purge_list": {
"purge_url": [
"images/test1.gif",
"file/test2.txt"
]
}
}
}
}
}
}
📥 응답
{
"api_response": {
"common": {
"action_date": "2025-10-08T15:19:21+00:00",
"service_name": "cdn",
"version": "1.0.0"
},
"data": {
"action": "purge",
"action_result": {
"purge_domain": "http://www.example.com",
"result_code": "200",
"result_msg": "All Success",
"purgeticket_list": [
{
"purge_url": "images/test1.gif",
"purgeticket": "API_20251008110623_4909dfae..."
}
]
}
}
}
}
GET
Purge 실행
https://openapi.cloudn.co.kr/cdnservice/purge/PurgeExecutionGT
※
response_type=json 파라미터 추가 시 JSON 형식 응답 (기본값: xml)Query String 파라미터를 이용한 GET 방식 Purge 실행 API입니다.
요청 파라미터
| 구분 | Parameter | Type | Required | Description |
|---|---|---|---|---|
| data | user_id | String | Y | User Portal 계정 ID ex) speedy_dev |
| passwd | String | 택일 | 계정 password | |
| cloud_key_value | String | 택일 | 계정 API Key | |
| action | String | Y | 실행 type ex) purge | |
| purge_domain | String | Y | Purge 대상 도메인 | |
| purge_url | Array | Y | Purge 대상 Contents 명 (반복 파라미터) | |
| client_type | String | 조건부 | 업로드 계정 퍼지 요청 시 필수 ex) ftp | |
| 선택 | response_type | String | N | JSON 응답 시 json 지정 (기본값: xml) |
⚠️ 주의: password에
#{ }[ ]| 문자 포함 시 API 수행 불가. 비밀번호 변경 또는 API Key 발급 요청 필요.💡 인코딩:
purge_url에 한글/특수문자 사용 시 UTF-8로 URL 인코딩. 전체 값을 인코딩 (double encoding 아님).Example Request (URL)
Ex 1) passwd 사용
GET https://openapi.cloudn.co.kr/cdnservice/purge/PurgeExecutionGT ?user_id=speedy_dev &passwd=1234 &action=purge &purge_domain=http://www.example.com &purge_url=images/test.jpg &purge_url=file/list.txt
Ex 2) API Key 사용
GET https://openapi.cloudn.co.kr/cdnservice/purge/PurgeExecutionGT ?user_id=speedy_dev &cloud_key_value=1234 &action=purge &purge_domain=http://www.example.com &purge_url=images/test.jpg &purge_url=file/list.txt
Ex 3) API Key + JSON 응답
GET https://openapi.cloudn.co.kr/cdnservice/purge/PurgeExecutionGT ?user_id=speedy_dev &cloud_key_value=1234 &action=purge &purge_domain=http://www.example.com &purge_url=images/test.jpg &response_type=json
POST
Purge 결과 조회
https://openapi.cloudn.co.kr/cdnservice/purge/GetPurgeResult/{request_type}
※ request_type: XML →
GetPurgeResult | JSON → GetPurgeResult/jsonPurge 실행 결과를 조회합니다. Purge 실행 시 수신한 purgeticket 값이 필요합니다.
요청 파라미터 (POST)
| 구분 | Parameter | Type | Required | Description |
|---|---|---|---|---|
| URL | request_type | String | Y | 요청 형식 지정 GetPurgeResult (XML) / GetPurgeResult/json (JSON) |
| common | action_date | String | Y | 요청시 현재 시간 (ISO 8601) |
| version | String | Y | API 버전 정보 | |
| service_name | String | Y | 서비스 명 (default: cdn) | |
| user_id | String | Y | User Portal 계정 ID | |
| 인증 | passwd | String | 택일 | 계정 password |
| cloud_key_value | String | 택일 | 계정 API Key | |
| data | action | String | Y | 실행 type ex) purge_result |
| client_type | String | Y | 요청 client 종류 ex) web |
응답 파라미터
| 구분 | Parameter | Type | Description |
|---|---|---|---|
| common | action_date | String | 요청시 현재 시간 (ISO 8601) |
| version | String | API 버전 정보 | |
| service_name | String | 서비스 명 | |
| data | action | String | 실행 type |
| purge_domain | String | 조회 도메인 명 | |
| result_code | String | 결과 코드 → 에러 코드 참조 | |
| result_msg | String | 결과 메시지 | |
| purge_url | String | Purge 대상 Contents 명 | |
| result | String | Purge 결과 진행률 ex) 50% | |
| fail_server_count | Integer | Purge 실패 서버 개수 ex) 2 |
⚠️ 주의:
& 문자는 XML 예약문자이므로 응답에서 &로 대체됩니다.Example
📤 요청
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <api_request> <common> <action_date>2025-10-08T15:19:21+00:00</action_date> <version>1.0.0</version> <user_info> <user_id>speedy_dev</user_id> <passwd>1234</passwd> </user_info> <service_name>cdn</service_name> </common> <data> <action>purge_result</action> <action_info> <client_type>web</client_type> <purge_object> <purge_domain>http://www.example.com</purge_domain> <purgeticket>API_20251008110623_4909dfae...</purgeticket> </purge_object> </action_info> </data> </api_request>
📥 응답
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <api_response> <common> <action_date>2025-10-08T15:19:21+00:00</action_date> <version>1.0.0</version> <service_name>cdn</service_name> </common> <data> <action>purge_result</action> <action_result> <purge_domain>http://www.example.com</purge_domain> <result_code>200</result_code> <result_msg>success</result_msg> <purge_object> <purge_url>images/test1.gif</purge_url> <result>50%</result> <fail_server_count>2</fail_server_count> </purge_object> </action_result> </data> </api_response>
📤 요청
{
"api_request": {
"common": {
"user_info": {
"user_id": "speedy_dev",
"passwd": "1234"
},
"action_date": "2025-10-08T15:19:21+00:00",
"version": "1.0.0",
"service_name": "cdn"
},
"data": {
"action": "purge_result",
"action_info": {
"purge_object": {
"purgeticket": "API_20251008110623_4909dfae...",
"purge_domain": "http://www.example.com"
},
"client_type": "web"
}
}
}
}
📥 응답
{
"api_response": {
"common": {
"service_name": "cdn",
"action_date": "2025-10-08T15:19:21+00:00",
"version": "1.0.0"
},
"data": {
"action_result": {
"result_msg": "success",
"purge_object": {
"result": "50%",
"purge_url": "images/test1.gif",
"fail_server_count": 2
},
"result_code": 200,
"purge_domain": "http://www.example.com"
},
"action": "purge_result"
}
}
}
GET
Purge 결과 조회
https://openapi.cloudn.co.kr/cdnservice/purge/GetPurgeResultGT
Query String 파라미터를 이용한 GET 방식 Purge 결과 조회 API입니다. Purge 실행 시 수신한 purgeticket 값이 필요합니다.
요청 파라미터 (GET)
| 구분 | Parameter | Type | Required | Description |
|---|---|---|---|---|
| data | user_id | String | Y | User Portal 계정 ID |
| passwd | String | 택일 | 계정 password | |
| cloud_key_value | String | 택일 | 계정 API Key | |
| action | String | Y | 실행 type ex) purge_result | |
| purge_domain | String | Y | 조회 대상 도메인 | |
| purgeticket | String | Y | Purge 실행 시 수신한 고유 key 값 |
⚠️ 주의: password에
#{ }[ ]| 문자 포함 시 API 수행 불가.Example Request (URL)
Ex 1) passwd 사용
GET https://openapi.cloudn.co.kr/cdnservice/purge/GetPurgeResultGT ?user_id=speedy_dev &passwd=1234 &action=purge_result &purge_domain=http://www.example.com &purgeticket=API_20251008112603_9d95fa9d...
Ex 2) API Key 사용
GET https://openapi.cloudn.co.kr/cdnservice/purge/GetPurgeResultGT ?user_id=speedy_dev &cloud_key_value=1234 &action=purge_result &purge_domain=http://www.example.com &purgeticket=API_20251008112603_9d95fa9d...
에러 코드
Cache-Purge Open API 서버의 응답(오류) 코드입니다.
2XX — 성공
| 코드 | 내역 | 비고 |
|---|---|---|
| 200 | 요청 성공 | — |
| 201 | 요청한 URL 중 일부만 성공 | — |
4XX — 실패
| 코드 | 내역 | 비고 |
|---|---|---|
| 401 | XML 파일 형식 오류 | — |
| 404 | 데이터 없음 | 결과 조회 시 purgeticket으로 조회된 결과 없음 |
41X — Purge object 오류
| 코드 | 내역 | 비고 |
|---|---|---|
| 410 | Purge object 미 기입 | — |
| 411 | Purge object에 잘못된 문자 입력 | — |
| 412 | Purge object 최대 요청 개수 오류 | max: 50개 |
42X — User 정보 오류
| 코드 | 내역 | 비고 |
|---|---|---|
| 420 | ID/PW 불일치 | — |
| 421 | Domain 정보 불일치 | — |
| 422 | Purge 권한 없음 | — |
에러 응답 예시 (XML)
<api_response> <common> <action_date>2025-10-08T15:19:21+00:00</action_date> <version>1.0.0</version> <service_name>cdn</service_name> </common> <data> <action>purge</action> <action_result> <result_code>420</result_code> <result_msg>ID/PW mismatch</result_msg> </action_result> </data> </api_response>
💡 에러 발생 시
result_code와 result_msg로 원인을 확인하십시오.