Cortex XDR API Documentation
XDR Public API v1 Reference
API Overview
Base URL
https://api-{tenant}.xdr.{region}.paloaltonetworks.com
Authentication
HMAC-SHA256 기반 인증. 헤더에 다음 필드 필요:
x-xdr-auth-id: API Key IDx-xdr-timestamp: 밀리초 타임스탬프x-xdr-nonce: 64자 랜덤 문자열Authorization: SHA256(API_KEY + NONCE + TIMESTAMP)
Common Parameters
request_data.filters |
필터 조건 배열 |
request_data.search_from |
페이지네이션 시작점 |
request_data.search_to |
페이지네이션 종료점 |
request_data.sort |
정렬 조건 |
12
API Categories39
Total Endpoints1
GET Endpoints38
POST Endpoints| Method | Endpoint | Description | Parameters |
|---|---|---|---|
| GET | /incidents/get_incidents |
인시던트 목록 조회 | limit, status, severity 등의 필터 지원 |
| POST | /incidents/get_incident_extra_data |
인시던트 상세 정보 조회 | incident_id 필요 |
| POST | /incidents/update_incident |
인시던트 업데이트 | status, severity, assigned_user 등 변경 |
| Method | Endpoint | Description | Parameters |
|---|---|---|---|
| POST | /alerts/get_alerts_multi_events |
알림 목록 조회 | limit, severity, alert_source 등 필터 지원 |
| POST | /alerts/get_alerts_by_filter_v2 |
알림 필터 조회 v2 | 고급 필터링 지원 |
| Method | Endpoint | Description | Parameters |
|---|---|---|---|
| POST | /endpoints/get_endpoint |
엔드포인트 목록 조회 | limit, status, os_type 등 필터 |
| POST | /endpoints/get_endpoints |
엔드포인트 상세 조회 | endpoint_id_list 필요 |
| POST | /endpoints/isolate |
엔드포인트 격리 | endpoint_id 필요 |
| POST | /endpoints/unisolate |
엔드포인트 격리 해제 | endpoint_id 필요 |
| POST | /endpoints/scan |
엔드포인트 스캔 시작 | endpoint_id 필요 |
| POST | /endpoints/delete |
엔드포인트 삭제 | endpoint_id_list 필요 |
| POST | /endpoints/set_alias |
엔드포인트 별칭 설정 | endpoint_id, alias 필요 |
| Method | Endpoint | Description | Parameters |
|---|---|---|---|
| POST | /scripts/get_scripts |
스크립트 목록 조회 | limit 지원 |
| POST | /scripts/get_script_metadata |
스크립트 메타데이터 조회 | script_id 필요 |
| POST | /scripts/get_script_code |
스크립트 코드 조회 | script_id 필요 |
| POST | /scripts/run_script |
스크립트 실행 | script_id, endpoint_id_list 필요 |
| POST | /scripts/run_snippet_code_script |
코드 스니펫 실행 | snippet_code, endpoint_id_list 필요 |
| POST | /scripts/get_script_execution_results |
스크립트 실행 결과 조회 | action_id 필요 |
| Method | Endpoint | Description | Parameters |
|---|---|---|---|
| POST | /quarantine/get_quarantine_status |
격리 파일 목록 조회 | limit 지원 |
| POST | /quarantine/quarantine_files |
파일 격리 | endpoint_id, file_path, file_hash 필요 |
| POST | /quarantine/restore_file |
격리 파일 복원 | file_hash, endpoint_id 필요 |
| Method | Endpoint | Description | Parameters |
|---|---|---|---|
| POST | /hash_exceptions/blocklist/ |
블랙리스트 조회 | limit 지원 |
| POST | /hash_exceptions/allowlist/ |
화이트리스트 조회 | limit 지원 |
| POST | /hash_exceptions/blocklist/add |
블랙리스트 추가 | hash_list, comment 필요 |
| POST | /hash_exceptions/allowlist/add |
화이트리스트 추가 | hash_list, comment 필요 |
| POST | /hash_exceptions/blocklist/remove |
블랙리스트 제거 | hash_list 필요 |
| POST | /hash_exceptions/allowlist/remove |
화이트리스트 제거 | hash_list 필요 |
| Method | Endpoint | Description | Parameters |
|---|---|---|---|
| POST | /policy/get_endpoint_policy |
엔드포인트 정책 조회 | endpoint_id 필요 |
| Method | Endpoint | Description | Parameters |
|---|---|---|---|
| POST | /host_groups/get_host_groups |
호스트 그룹 목록 조회 | limit 지원 |
| POST | /host_groups/get_host_group |
호스트 그룹 상세 조회 | group_id 필요 |
| Method | Endpoint | Description | Parameters |
|---|---|---|---|
| POST | /agent_report |
에이전트 리포트 조회 | XQL 쿼리 기반 감사 로그 |
| Method | Endpoint | Description | Parameters |
|---|---|---|---|
| POST | /audits/management_logs |
관리 로그 조회 | limit, sort 지원 |
| POST | /audits/agents_reports |
에이전트 로그 조회 | limit, sort 지원 |
| POST | /audits/quarantine_status |
격리 상태 로그 조회 | limit 지원 |
| Method | Endpoint | Description | Parameters |
|---|---|---|---|
| POST | /distributions/get_status |
배포 상태 조회 | distribution_id 필요 |
| POST | /distributions/get_versions |
배포 버전 조회 | 패키지 버전 목록 |
| POST | /distributions/create |
배포 URL 생성 | package_type, platform 필요 |
| Method | Endpoint | Description | Parameters |
|---|---|---|---|
| POST | /endpoints/file_retrieval |
파일 검색 요청 | endpoint_id, file_path_list 필요 |
| POST | /endpoints/action_status |
액션 상태 조회 | action_id 필요 |
Example: Get Incidents
Request
POST /public_api/v1/incidents/get_incidents
{
"request_data": {
"filters": [
{
"field": "status",
"operator": "in",
"value": ["new", "under_investigation"]
}
],
"search_from": 0,
"search_to": 100,
"sort": {
"field": "creation_time",
"keyword": "desc"
}
}
}
Response
{
"reply": {
"total_count": 42,
"result_count": 42,
"incidents": [
{
"incident_id": "123",
"incident_name": "Suspicious Activity",
"status": "new",
"severity": "high",
"creation_time": 1702800000000,
"alert_count": 5
}
]
}
}
Implementation Status (XdrTestManager)
| Category | Read/Query | Write/Action | Notes |
|---|---|---|---|
| Incidents | Implemented | Implemented | 캐싱 지원 |
| Alerts | Implemented | N/A | 캐싱 지원 |
| Endpoints | Implemented | Implemented | 격리, 스캔, 삭제 |
| Scripts | Implemented | Implemented | 스크립트 실행 |
| Quarantine | Partial | Implemented | API 500 에러 발생 |
| Hash Exceptions | Partial | Implemented | API 500 에러 발생 |
| Policies | Implemented | N/A | endpoint_id 필요 |
| Host Groups | Partial | N/A | API 500 에러 발생 |
| Agent Reports | Implemented | N/A | XQL 기반 |
| Audit Logs | Implemented | N/A | |
| Distributions | Implemented | Implemented | URL 생성 |