OpenAPI Specification
openapi: 3.2.0
info:
title: Palo Alto Networks Jobs API
version: 2.0.0
contact:
email: support@paloaltonetworks.com
name: Palo Alto Networks Technical Support
url: https://support.paloaltonetworks.com
license:
name: MIT
url: https://opensource.org/license/mit
termsOfService: https://www.paloaltonetworks.com/content/dam/pan/en_US/assets/pdf/legal/palo-alto-networks-end-user-license-agreement-eula.pdf
description: 'Operations tagged Jobs across 2 of this provider''s published API definitions: palo-alto-scm-config-cloudngfw-operations-config-operations-march-openapi.yaml, palo-alto-scm-config-ngfw-operations-operations-r2-2026-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.strata.paloaltonetworks.com/config/operations/v1
description: Current
- url: https://api.sase.paloaltonetworks.com/sse/config/v1
description: Legacy
- url: https://api.strata.paloaltonetworks.com/operations/v1
description: Current
security:
- scmToken: []
tags:
- name: Jobs
description: Jobs
paths:
/jobs:
get:
tags:
- Jobs
summary: List jobs
description: 'Retrieve a list of configuration jobs.
'
operationId: ListJobs
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
allOf:
- type: array
items:
$ref: '#/components/schemas/jobs'
limit:
type: integer
default: 200
offset:
type: integer
default: 0
total:
type: integer
'400':
$ref: '#/components/responses/bad_request_errors_basic'
'401':
$ref: '#/components/responses/auth_errors'
'403':
$ref: '#/components/responses/access_errors'
'404':
$ref: '#/components/responses/not_found'
default:
$ref: '#/components/responses/default_errors'
servers:
- url: https://api.strata.paloaltonetworks.com/config/operations/v1
description: Current
- url: https://api.sase.paloaltonetworks.com/sse/config/v1
description: Legacy
/jobs/{id}:
get:
tags:
- Jobs
summary: Get a job
description: 'Get an existing configuration job.
'
operationId: GetJobsByID
parameters:
- $ref: '#/components/parameters/jobid'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/jobs-response'
'400':
$ref: '#/components/responses/bad_request_errors_basic'
'401':
$ref: '#/components/responses/auth_errors'
'403':
$ref: '#/components/responses/access_errors'
'404':
$ref: '#/components/responses/not_found'
default:
$ref: '#/components/responses/default_errors'
servers:
- url: https://api.strata.paloaltonetworks.com/config/operations/v1
description: Current
- url: https://api.sase.paloaltonetworks.com/sse/config/v1
description: Legacy
/device/jobs/{id}:
get:
summary: Retrieve job status and results, running on a device
description: 'Retrieves the current status and results of an asynchronous device job. Poll this endpoint to check job completion and retrieve the results once the job state is complete.
'
tags:
- Jobs
operationId: getJobStatus
parameters:
- name: id
in: path
description: The unique identifier of the job to retrieve.
required: true
schema:
type: string
format: uuid
example: ab123c4d-e56f-7g8h-901i-23jk4l5mn678
responses:
'200':
description: 'Success - Job details retrieved successfully.
The response includes job progress, state, request details, and results when available.
'
content:
application/json:
schema:
$ref: '#/components/schemas/job_status'
examples:
complete_routing_job:
summary: Completed routing table job
value:
jobId: ab123c4d-e56f-7g8h-901i-23jk4l5mn678
progress: 100
state: complete
request:
command: show-advanced-routing-route
devices:
- 012345678901234
results:
- device: 012345678901234
state: complete
created_ts: '2026-03-02 19:00:04'
updated_ts: '2026-03-02 19:00:04'
details:
msg: Command completed successfully.
result:
router_global:
3.3.3.3/32:
- prefix: 3.3.3.3/32
prefixLen: 32
protocol: connected
distance: 0
metric: 0
installed: true
selected: true
destSelected: true
uptime: 06w0d07h
nexthopGroupId: 6
nexthops:
- interfaceName: vlan.1
interfaceIndex: 256
active: true
fib: true
directlyConnected: true
flags: 'A '
in_progress_job:
summary: Job in progress
value:
jobId: ab123c4d-e56f-7g8h-901i-23jk4l5mn678
progress: 50
state: in_progress
request:
command: show-advanced-routing-route
devices:
- 012345678901234
results: []
'401':
$ref: '#/components/responses/auth_errors'
'403':
$ref: '#/components/responses/access_errors'
'404':
$ref: '#/components/responses/not_found'
default:
$ref: '#/components/responses/default_errors'
servers:
- url: https://api.strata.paloaltonetworks.com/operations/v1
description: Current
components:
examples:
json_401_panui_auth_key_expired:
summary: Key Expired
value:
_errors:
- code: E016
message: Key Expired
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_501_panui_restapi_method_not_supported:
summary: Method Not Supported
value:
_errors:
- code: E012
message: Method Not Supported
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_restapi_input_format_mismatch:
summary: Input Format Mismatch
value:
_errors:
- code: E003
message: 'Input Format Mismatch: input-format=json'
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_501_panui_restapi_version_not_supported:
summary: Version Not Supported
value:
_errors:
- code: E012
message: Version Not Supported
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_404_panui_mgmt_object_not_present:
summary: Object Not Present
value:
_errors:
- code: E005
message: Object Not Present
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_mgmt_invalid_command:
summary: Invalid Command
value:
_errors:
- code: E003
message: Invalid Command
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_restapi_output_format_mismatch:
summary: Output Format Mismatch
value:
_errors:
- code: E003
message: 'Output Format Mismatch: output-format=json Accept=xml'
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_401_panui_auth_not_authenticated:
summary: Not Authenticated
value:
_errors:
- code: E016
message: Not Authenticated
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_401_panui_auth_invalid_credential:
summary: Invalid Credential
value:
_errors:
- code: E016
message: Invalid Credential
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_403_panui_auth_unauthorized:
summary: Unauthorized
value:
_errors:
- code: E007
message: Unauthorized
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_restapi_missing_query_parameter:
summary: Missing Query Parameter
value:
_errors:
- code: E003
message: 'Missing Query Parameter: name'
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_405_panui_restapi_action_not_supported:
summary: Action Not Supported
value:
_errors:
- code: E012
message: 'Action Not Supported: move'
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_restapi_invalid_query_parameter:
summary: Invalid Query Parameter
value:
_errors:
- code: E003
message: 'Invalid Query Parameter: location=invalid'
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_401_panui_auth_key_too_long:
summary: Key Too Long
value:
_errors:
- code: E016
message: Key Too Long
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_mgmt_malformed_command:
summary: Malformed Command
value:
_errors:
- code: E003
message: Malformed Command
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_504_panui_mgmt_session_timeout:
summary: Session Timeout
value:
_errors:
- code: '4'
message: Session Timeout
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_401_panui_auth_need_password_change:
summary: Need Password Change
value:
_errors:
- code: E016
message: The password needs to be changed.
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_400_panui_mgmt_bad_xpath:
summary: Bad XPath
value:
_errors:
- code: E013
message: Bad XPath
details: {}
_request_id: 123e4567-e89b-12d3-a456-426655440000
json_401_panui_auth_key_expired_2:
summary: Key Expired
value:
_errors:
- code: E016
message: Key Expired
details: {}
_request_id: abcd-1234
json_501_panui_restapi_method_not_supported_2:
summary: Method Not Supported
value:
_errors:
- code: E012
message: Method Not Supported
details: {}
_request_id: abcd-1234
json_501_panui_restapi_version_not_supported_2:
summary: Version Not Supported
value:
_errors:
- code: E012
message: Version Not Supported
details: {}
_request_id: abcd-1234
json_404_panui_mgmt_object_not_present_2:
summary: Object Not Present
value:
_errors:
- code: E005
message: Object Not Present
details: {}
_request_id: abcd-1234
json_400_panui_mgmt_invalid_command_2:
summary: Invalid Command
value:
_errors:
- code: E003
message: Invalid Command
details: {}
_request_id: abcd-1234
json_401_panui_auth_not_authenticated_2:
summary: Not Authenticated
value:
_errors:
- code: E016
message: Not Authenticated
details: {}
_request_id: abcd-1234
json_401_panui_auth_invalid_credential_2:
summary: Invalid Credential
value:
_errors:
- code: E016
message: Invalid Credential
details: {}
_request_id: abcd-1234
json_403_panui_auth_unauthorized_2:
summary: Unauthorized
value:
_errors:
- code: E007
message: Unauthorized
details: {}
_request_id: abcd-1234
json_405_panui_restapi_action_not_supported_2:
summary: Action Not Supported
value:
_errors:
- code: E012
message: 'Action Not Supported: move'
details: {}
_request_id: abcd-1234
json_401_panui_auth_key_too_long_2:
summary: Key Too Long
value:
_errors:
- code: E016
message: Key Too Long
details: {}
_request_id: abcd-1234
json_400_panui_mgmt_malformed_command_2:
summary: Malformed Command
value:
_errors:
- code: E003
message: Malformed Command
details: {}
_request_id: abcd-1234
json_504_panui_mgmt_session_timeout_2:
summary: Session Timeout
value:
_errors:
- code: '4'
message: Session Timeout
details: {}
_request_id: abcd-1234
json_401_panui_auth_need_password_change_2:
summary: Need Password Change
value:
_errors:
- code: E016
message: The password needs to be changed.
details: {}
_request_id: abcd-1234
json_400_panui_mgmt_bad_xpath_2:
summary: Bad XPath
value:
_errors:
- code: E013
message: Bad XPath
details: {}
_request_id: abcd-1234
schemas:
generic_error:
type: object
properties:
_errors:
$ref: '#/components/schemas/error_detail_cause_infos'
_request_id:
type: string
x-examples: {}
error_detail_cause_info:
type: object
title: Cause Info
properties:
code:
type: string
message:
type: string
details:
type: object
help:
type: string
error_detail_cause_infos:
type: array
items:
$ref: '#/components/schemas/error_detail_cause_info'
x-examples: {}
jobs-response:
type: object
description: Response containing job data
properties:
data:
type: array
items:
$ref: '#/components/schemas/jobs'
jobs:
type: object
properties:
device_name:
type: string
description: The name of the device
end_ts:
type: string
description: The timestamp indicating when the job was finished
id:
type: string
description: The job ID
example: '115'
job_result:
type: string
description: The job result
example: '2'
job_status:
type: string
description: The current status of the job
example: '2'
job_type:
type: string
description: The job type
example: '53'
parent_id:
type: string
description: The parent job ID
example: '114'
percent:
type: string
description: Job completion percentage
result_str:
type: string
enum:
- OK
- FAIL
- PEND
- WAIT
- CANCELLED
- TIMEOUT
description: The result of the job
start_ts:
type: string
description: The timestamp indicating when the job was created
status_str:
type: string
enum:
- ACT
- FIN
- PEND
- PUSHSENT
- PUSHFAIL
- PUSHABORT
- PUSHTIMEOUT
description: The current status of the job
summary:
type: string
description: The completion summary of the job
type_str:
type: string
enum:
- CommitAll
- CommitAndPush
- NGFW-Bootstrap-Push
- Validate
description: The job type
example: CommitAndPush
uname:
type: string
description: The administrator or service account that created the job
format: email
description:
type: string
description: A description provided by the administrator or service account
example: Added a new security rule for marketing
details:
type: string
description: JSON string with detailed errors or info
example: '{"errors":["Config push aborted, error: Failed to handle VPN clusters. Please check AutoVPN config for the device"]}'
required:
- device_name
- end_ts
- id
- job_result
- job_status
- job_type
- parent_id
- percent
- result_str
- start_ts
- status_str
- summary
- type_str
- uname
generic_error_2:
type: object
properties:
_errors:
$ref: '#/components/schemas/error_detail_cause_infos_2'
_request_id:
type: string
error_detail_cause_info_2:
title: Cause Info
type: object
properties:
code:
type: string
message:
type: string
details:
oneOf:
- type: string
- type: object
help:
type: string
error_detail_cause_infos_2:
type: array
items:
$ref: '#/components/schemas/error_detail_cause_info_2'
job_result:
type: object
required:
- device
- state
- created_ts
- updated_ts
- details
properties:
device:
type: string
pattern: ^[0-9]{14,15}$
description: The serial number of the device.
example: 012345678901234
state:
type: string
description: The state of the job for this specific device.
enum:
- pending
- in_progress
- complete
- failed
example: complete
created_ts:
type: string
description: Timestamp when the job was created.
example: '2026-03-02 19:00:04'
updated_ts:
type: string
description: Timestamp when the job was last updated.
example: '2026-03-02 19:00:04'
details:
type: object
description: Detailed results from the command execution. The structure varies based on the command type.
required:
- msg
- result
properties:
msg:
type: string
description: Status message from the command execution.
example: Command completed successfully.
result:
type: object
description: The actual result data from the command. Structure varies by command type and may contain routing tables, device information, or other operational data.
additionalProperties: true
job_status:
type: object
required:
- jobId
- progress
- state
- request
- results
properties:
jobId:
type: string
format: uuid
description: Unique identifier for the job.
example: ab123c4d-e56f-7g8h-901i-23jk4l5mn678
progress:
type: integer
minimum: 0
maximum: 100
description: Job completion percentage.
example: 100
state:
type: string
description: Current state of the job.
enum:
- pending
- in_progress
- complete
- failed
example: complete
request:
type: object
description: The original request that initiated the job.
required:
- command
- devices
properties:
command:
type: string
description: The command that was executed.
example: show-advanced-routing-route
devices:
type: array
description: List of device serial numbers for which the command was executed.
items:
type: string
pattern: ^[0-9]{14,15}$
example:
- 012345678901234
results:
type: array
description: Array of results from each device. The structure of the result data varies based on the job type.
items:
$ref: '#/components/schemas/job_result'
responses:
not_found:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/generic_error'
examples:
object_not_present:
$ref: '#/components/examples/json_404_panui_mgmt_object_not_present'
default_errors:
description: General Errors
content:
application/json:
schema:
$ref: '#/components/schemas/generic_error'
examples:
version_not_supported:
$ref: '#/components/examples/json_501_panui_restapi_version_not_supported'
method_not_allowed:
$ref: '#/components/examples/json_501_panui_restapi_method_not_supported'
action_not_supported:
$ref: '#/components/examples/json_405_panui_restapi_action_not_supported'
bad_xpath:
$ref: '#/components/examples/json_400_panui_mgmt_bad_xpath'
invalid_command:
$ref: '#/components/examples/json_400_panui_mgmt_invalid_command'
malformed_command:
$ref: '#/components/examples/json_400_panui_mgmt_malformed_command'
session_timeout:
$ref: '#/components/examples/json_504_panui_mgmt_session_timeout'
bad_request_errors_basic:
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/generic_error'
examples:
input_format_mismatch:
$ref: '#/components/examples/json_400_panui_restapi_input_format_mismatch'
output_format_mismatch:
$ref: '#/components/examples/json_400_panui_restapi_output_format_mismatch'
missing_query_parameter:
$ref: '#/components/examples/json_400_panui_restapi_missing_query_parameter'
invalid_query_parameter:
$ref: '#/components/examples/json_400_panui_restapi_invalid_query_parameter'
auth_errors:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/generic_error'
examples:
auth_not_authenticated:
$ref: '#/components/examples/json_401_panui_auth_not_authenticated'
invalid_credential:
$ref: '#/components/examples/json_401_panui_auth_invalid_credential'
key_too_long:
$ref: '#/components/examples/json_401_panui_auth_key_too_long'
key_expired:
$ref: '#/components/examples/json_401_panui_auth_key_expired'
need_password_change:
$ref: '#/components/examples/json_401_panui_auth_need_password_change'
access_errors:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/generic_error'
examples:
auth_unauthorized:
$ref: '#/components/examples/json_403_panui_auth_unauthorized'
parameters:
jobid:
name: id
in: path
description: The ID of the job
required: true
schema:
type: string
securitySchemes:
scmOAuth:
type: oauth2
description: "Strata Cloud Manager APIs authenticate client requests using the \nOAuth 2.0 Client Credentials flow. Please use the `client_id`, \n`client_secret` values associated with an IAM service account along \nwith a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the \nTenant Service Group (TSG) ID. The resulting JWT access token should \nbe attached to all API calls as a `Bearer` token in the `Authorization` \nheader (ex. `Authorization: Bearer tokenstring`).\n"
flows:
clientCredentials:
tokenUrl: https://auth.apps.paloaltonetworks.com/oauth2/access_token
scopes: {}
scmToken:
type: http
description: "Strata Cloud Manager APIs authenticate client requests using the \nOAuth 2.0 Client Credentials flow. Please use the `client_id`, \n`client_secret` values associated with an IAM service account along \nwith a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the \nTenant Service Group (TSG) ID. The resulting JWT access token should \nbe attached to all API calls as a `Bearer` token in the `Authorization` \nheader (ex. `Authorization: Bearer tokenstring`).\n"
scheme: bearer
bearerFormat: JWT
x-refined-from:
- palo-alto-scm-config-cloudngfw-operations-config-operations-march-openapi.yaml
- palo-alto-scm-config-ngfw-operations-operations-r2-2026-openapi.yaml