For the complete documentation index, see llms.txt. This page is also available as Markdown.

Remote log bundle

Cloud-orchestrated three-step flow to obtain a log bundle from a remote broker: request generation, poll for completion, then download. For an on-appliance synchronous stream, use the /public_api/v1/logs endpoint of the direct Broker API spec.

Request asynchronous log-bundle collection from a broker

post

Ask the broker to collect a log bundle and upload it to cloud storage. The operation is idempotent: if a previous bundle request for the same broker is still in flight, this call returns LogRequestAlreadyInProgress rather than enqueuing a second job.

Once enqueued, poll getLogBundleStatus until LogRequestSucceeded, then download via downloadLogBundle.

Required permission: broker_action.

Authorizations
AuthorizationstringRequired

The tenant API key value, sent as the literal Authorization header value (no Bearer prefix).

x-xdr-auth-idstringRequired

The tenant API key identifier corresponding to the value sent in Authorization.

Path parameters
device_idstring · min: 1Required

The broker device identifier as returned by getBrokers.

Example: 6f3a8c7e-1a9b-4c0d-9e21-7f5d3b1c8a02
Responses
200

Request enqueued (or already in progress).

application/json

Payload returned by generateLogBundle. The code field discriminates between newly-enqueued (LogRequestSubmitted) and already-in-flight (LogRequestAlreadyInProgress).

codestring · enumRequired

LogRequestSubmitted — a new bundle request was enqueued. LogRequestAlreadyInProgress — a prior request is still in flight and was not duplicated.

Possible values:
statusbooleanRequired

Always true for this endpoint; reserved for parity with the legacy log-status payload.

post/public_api/v1/brokers/{device_id}/logs/generate/
POST /public_api/v1/brokers/{device_id}/logs/generate/ HTTP/1.1
Host: api-cortex.paloaltonetworks.com
Authorization: YOUR_API_KEY
x-xdr-auth-id: YOUR_API_KEY
Accept: */*
{
  "code": "LogRequestSubmitted",
  "status": true
}

Poll the status of a log-bundle request

get

Return the status of the most recent log-bundle request for the broker. The log_collection_time field is always present (ISO 8601 UTC string when the bundle has been collected, null otherwise) so clients can rely on a stable response shape regardless of state.

Use code (not status) to distinguish states: status is true only for LogRequestSucceeded.

Required permission: broker_action.

Authorizations
AuthorizationstringRequired

The tenant API key value, sent as the literal Authorization header value (no Bearer prefix).

x-xdr-auth-idstringRequired

The tenant API key identifier corresponding to the value sent in Authorization.

Path parameters
device_idstring · min: 1Required

The broker device identifier as returned by getBrokers.

Example: 6f3a8c7e-1a9b-4c0d-9e21-7f5d3b1c8a02
Responses
200

Current log-bundle request status.

application/json

Payload returned by getLogBundleStatus. The code field reflects the current state of the log bundle.

codestring · enumRequired

Status of the most recent log-bundle request. See the endpoint description for the meaning of each value.

Possible values:
statusbooleanRequired

true only when the bundle is ready for download (LogRequestSucceeded); false for in-progress and all failure states. Key off code rather than status to distinguish in-progress from failure.

log_collection_timestring · nullableRequired

ISO 8601 UTC timestamp of when the broker finished collecting the bundle. null when the bundle has not yet completed (or the request failed before completion).

Example: 2026-05-17T10:21:08+00:00
get/public_api/v1/brokers/{device_id}/logs/status/
GET /public_api/v1/brokers/{device_id}/logs/status/ HTTP/1.1
Host: api-cortex.paloaltonetworks.com
Authorization: YOUR_API_KEY
x-xdr-auth-id: YOUR_API_KEY
Accept: */*
{
  "code": "LogRequestInProgress",
  "status": false,
  "log_collection_time": null
}

Download the most recent log bundle for a broker

get

Stream the most recent log bundle for the broker as a gzipped tar archive (<device_id>_<epoch_ms>.tar.gz). Call only after getLogBundleStatus returns LogRequestSucceeded; calling earlier yields 4xx.

Required permission: broker_action.

Authorizations
AuthorizationstringRequired

The tenant API key value, sent as the literal Authorization header value (no Bearer prefix).

x-xdr-auth-idstringRequired

The tenant API key identifier corresponding to the value sent in Authorization.

Path parameters
device_idstring · min: 1Required

The broker device identifier as returned by getBrokers.

Example: 6f3a8c7e-1a9b-4c0d-9e21-7f5d3b1c8a02
Responses
200

Gzipped tar archive of the log bundle.

application/octet-stream
Responsestring · binary

Raw bytes of the gzipped tar archive.

get/public_api/v1/brokers/{device_id}/logs/download/
GET /public_api/v1/brokers/{device_id}/logs/download/ HTTP/1.1
Host: api-cortex.paloaltonetworks.com
Authorization: YOUR_API_KEY
x-xdr-auth-id: YOUR_API_KEY
Accept: */*
binary

Last updated

Was this helpful?