Palo Alto Networks Machines API

APIs for Machines.

Operations 10

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /v1/machines List all machines · Get the details of all machines #
Ask an LLM
“Which machines are registered for certificate provisioning?”
“Can I get every machine and its details in one call?”
Tell an agent
List all machines.
Show the details of every machine I have.
POST /v1/machines Add a machine · Add a machine #
Ask an LLM
“How do I register a new machine with a plugin and connection details?”
“Can I assign an owning team and tags when adding a machine?”
Tell an agent
Add machine {name} using plugin {pluginId} with connection details {connectionDetails}.
Create machine {name} on plugin {pluginId} owned by team {owningTeamId}.
GET /v1/machines/{id} Get a machine's details · Get a machine details #
Ask an LLM
“What are the connection details and status of one machine?”
“Can I look up a single machine by its id?”
Tell an agent
Get machine {id}.
Show the details of machine {id}.
DELETE /v1/machines/{id} Delete a machine · Delete a machine #
Ask an LLM
“How do I remove a machine from the inventory?”
“Is deleting a machine by id reversible?”
Tell an agent destructive · confirm first
Delete machine {id}.
Remove machine {id} permanently.
PATCH /v1/machines/{id} Update a machine's settings · Update a machine details #
Ask an LLM
“Can I turn on scheduled discovery for an existing machine?”
“How do I change a machine's connection details or owning team?”
Tell an agent
Rename machine {id} to {name}.
Enable discovery on machine {id} with schedule {discoverySchedulerPattern}.
POST /v1/machines/{id}/workflows Start a workflow on a machine · Initiate the workflow #
Ask an LLM
“How do I kick off a named workflow on a machine?”
“Can I pass input data when triggering a machine workflow?”
Tell an agent
Start workflow {workflowName} on machine {id}.
Trigger workflow {workflowName} on machine {id} with input {workflowInput}.
POST /v1/machinesearch Search machines by expression · Get the details of machines matching #
Ask an LLM
“Can I find machines that match a search expression, with paging and ordering?”
“Which machines match a filter like a status or plugin?”
Tell an agent
Search machines matching {expression}.
Find machines with {expression} ordered by {ordering}.
POST /v1/machines/{id}/batchprovisionings/abort Abort a machine's batch provisioning · Abort active batch provisioning for a #
Ask an LLM
“How do I stop a batch provisioning run that is in progress on a machine?”
“Can I cancel certificate batch provisioning for one machine?”
Tell an agent destructive · confirm first
Abort the active batch provisioning on machine {id}.
Cancel batch provisioning currently running for machine {id}.
GET /v1/machines/{id}/discovery Get a machine's discovery results · Get the discovery results for a #
Ask an LLM
“What did the last discovery on a machine find?”
“Can I see discovery results for one machine?”
Tell an agent
Get the discovery results of machine {id}.
Show what discovery found on machine {id}.
POST /v1/machines/{id}/discovery/abort Abort a machine discovery · Abort machine discovery #
Ask an LLM
“How do I stop a discovery that is running on a machine?”
“Can an active machine discovery be aborted midway?”
Tell an agent destructive · confirm first
Abort the running discovery on machine {id}.
Stop discovery for machine {id}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/palo-alto-networks:palo-alto-networks-machines-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

palo-alto-networks-machines-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TLS Protect Cloud API for Strata Cloud Manager Machines API
  description: Use the TLS Protect Cloud APIs to manage certificates, certificate requests, applications, machine identities, users, teams, event logs, and more. This Open API spec file was created on June 04, 2026. © 2026 Palo Alto Networks, Inc. Palo Alto Networks is a registered trademark of Palo Alto Networks. A list of our trademarks can be found at https://www.paloaltonetworks.com/company/trademarks.html. All other marks mentioned herein may be trademarks of their respective companies.
  version: 1.0.0
  license:
    name: MIT
    url: https://opensource.org/license/mit
servers:
- url: https://api.strata.paloaltonetworks.com/ngts
  description: Strata Cloud Manager API
security:
- scmToken: []
tags:
- name: Machines
  description: APIs for Machines.
paths:
  /v1/machines:
    get:
      description: Retrieves the details of all machines.
      operationId: machines_getAll
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachinesResponse'
          description: Details of Machines in response body.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Incomplete or malformed request.
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Incomplete or malformed request.
      summary: Get the details of all machines
      tags:
      - Machines
    post:
      description: Creates a machine corresponding to the specified `pluginId`.
      operationId: machines_create
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MachineCreationRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineInformation'
          description: Machine was created; details in response body.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Incomplete or malformed request.
      summary: Add a machine
      tags:
      - Machines
  /v1/machines/{id}:
    get:
      description: Retrieves the details of the machine that matches the specified `id`.
      operationId: machines_getById
      parameters:
      - description: UUID of a Machine
        in: path
        name: id
        required: true
        schema:
          description: UUID of a Machine
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineInformation'
          description: Machine was found; details in the response body.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Incomplete or malformed request.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Machine not found.
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Incomplete or malformed request.
      summary: Get a machine details
      tags:
      - Machines
    delete:
      description: Deletes a machine that has the specified `id`.
      operationId: machines_delete
      parameters:
      - description: UUID of a Machine.
        in: path
        name: id
        required: true
        schema:
          description: UUID of a Machine.
          format: uuid
          type: string
      responses:
        '204':
          description: Machine deleted.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Request conditions failed.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Certificate installation not found.
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Request conditions failed.
      summary: Delete a machine
      tags:
      - Machines
    patch:
      description: Updates specific details of the machine that matches the specified `id`.
      operationId: machines_update
      parameters:
      - description: UUID of a Machine.
        in: path
        name: id
        required: true
        schema:
          description: UUID of a Machine.
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MachineUpdateRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineInformation'
          description: Machine was updated; details in the response body.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Incomplete or malformed request.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Machine not found.
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Incomplete or malformed request.
      summary: Update a machine details
      tags:
      - Machines
  /v1/machines/{id}/workflows:
    post:
      description: Triggers the beginning of the workflow.
      operationId: machines_initiateWorkflow
      parameters:
      - description: UUID of a Machine.
        in: path
        name: id
        required: true
        schema:
          description: UUID of a Machine.
          format: uuid
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MachineWorkflowRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineInformation'
          description: Workflow initiated successfully.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Request conditions failed.
      summary: Initiate the workflow
      tags:
      - Machines
  /v1/machinesearch:
    post:
      description: Retrieves the details of machines that match the specified search expression.
      operationId: getMachinesByExpression
      parameters:
      - description: Indicates whether response should include nested ownership data (e.g., `owningContainers`)
        in: query
        name: ownershipTree
        schema:
          default: false
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MachinesSearchRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineDocumentResponse'
          description: Details of Machines in response body.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Incomplete or malformed request.
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Incomplete or malformed request.
      summary: Get the details of machines matching
      tags:
      - Machines
  /v1/machines/{id}/batchprovisionings/abort:
    post:
      description: Triggers the abort operation on the current batch provisioning process for the machine with the specified `id`.
      operationId: abort-v1-batchprovisionings-forMachineId
      parameters:
      - description: UUID of a Machine.
        in: path
        name: id
        required: true
        schema:
          description: UUID of a Machine.
          format: uuid
          type: string
      responses:
        '202':
          description: Batch provisioning abort success.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Operation forbidden.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Active batch provisioning not found.
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Abort batch provisioning not allowed.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Internal server error.
      summary: Abort active batch provisioning for a
      tags:
      - Machines
  /v1/machines/{id}/discovery:
    get:
      description: Retrieves the details of the machine's discovery.
      operationId: machineDiscoveryResults_getByMachineId
      parameters:
      - description: UUID of a Machine.
        in: path
        name: id
        required: true
        schema:
          description: UUID of a Machine.
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineDiscoveryResultInformation'
          description: Discovery result for machine was found; details in response body.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Incomplete or malformed request.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: The discovery result for the machine was not found. It is possible that discovery was never initiated. Run discovery and try again.
        '412':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Incomplete or malformed request.
      summary: Get the discovery results for a
      tags:
      - Machines
  /v1/machines/{id}/discovery/abort:
    post:
      description: Aborts an active discovery.
      operationId: machineDiscoveryResults_abortdiscovery
      parameters:
      - description: UUID of a Machine.
        in: path
        name: id
        required: true
        schema:
          description: UUID of a Machine.
          format: uuid
          type: string
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MachineInformation'
          description: Abort discovery success.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Operation forbidden.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Active discovery not found.
        '405':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse3'
          description: Abort discovery not allowed.
      summary: Abort machine discovery
      tags:
      - Machines
components:
  schemas:
    MachineInformation:
      properties:
        batchProvisioningResult:
          $ref: '#/components/schemas/MachineBatchProvisioningResultInformation'
        batchProvisioningSchedulerEnabled:
          type: boolean
        batchProvisioningSchedulerPattern:
          $ref: '#/components/schemas/SchedulerPatternInformation2'
        batchProvisioningStatus:
          enum:
          - NEVER_INITIATED
          - INITIATED
          - RUNNING
          - COMPLETED
          - ABORTED
          - ABORTING
          - FAILED
          type: string
        companyId:
          format: uuid
          type: string
        creationDate:
          format: date-time
          type: string
        discoveryJson:
          $ref: '#/components/schemas/AnyValue3'
        discoverySchedulerEnabled:
          type: boolean
        discoverySchedulerPattern:
          $ref: '#/components/schemas/SchedulerPatternInformation2'
        discoveryStatus:
          enum:
          - NEVER INITIATED
          - INITIATED
          - RUNNING
          - COMPLETED
          - ABORTED
          - ABORTING
          - FAILED
          type: string
        edgeInstanceId:
          format: uuid
          type: string
        id:
          format: uuid
          type: string
        integrationId:
          format: uuid
          type: string
        machineType:
          deprecated: true
          type: string
        modificationDate:
          format: date-time
          type: string
        name:
          type: string
        owningTeamId:
          format: uuid
          type: string
        pluginId:
          format: uuid
          type: string
        status:
          enum:
          - DRAFT
          - VERIFIED
          - UNVERIFIED
          - DELETING
          type: string
        tsgId:
          type: string
      type: object
    Expression:
      type: object
    MachinesResponse:
      properties:
        machines:
          items:
            $ref: '#/components/schemas/MachineInformation'
          type: array
      type: object
    MachineUpdateRequest:
      properties:
        batchProvisioningSchedulerEnabled:
          type: boolean
        batchProvisioningSchedulerPattern:
          $ref: '#/components/schemas/SchedulerPatternInformation2'
        connectionDetails:
          $ref: '#/components/schemas/AnyValue3'
        discoveryJson:
          $ref: '#/components/schemas/AnyValue3'
        discoverySchedulerEnabled:
          type: boolean
        discoverySchedulerPattern:
          $ref: '#/components/schemas/SchedulerPatternInformation2'
        edgeInstanceId:
          format: uuid
          type: string
        name:
          type: string
        owningTeamId:
          format: uuid
          type: string
        status:
          enum:
          - DRAFT
          - VERIFIED
          - UNVERIFIED
          - DELETING
          type: string
      type: object
    Ordering:
      properties:
        orders:
          items:
            $ref: '#/components/schemas/OrderObject'
          type: array
      type: object
    OrderObject:
      properties:
        direction:
          enum:
          - ASC
          - DESC
          type: string
        field:
          type: string
      type: object
    MachineDocumentInformation:
      properties:
        companyId:
          format: uuid
          type: string
        creationDate:
          format: date-time
          type: string
        id:
          format: uuid
          type: string
        integrationId:
          format: uuid
          type: string
        machineIdentitiesCount:
          format: int32
          type: integer
        machineName:
          type: string
        machineType:
          deprecated: true
          type: string
        machineTypeId:
          deprecated: true
          format: uuid
          type: string
        modificationDate:
          format: date-time
          type: string
        ownership:
          $ref: '#/components/schemas/MachineOwnership'
        owningTeam:
          format: uuid
          type: string
        pluginId:
          format: uuid
          type: string
        pluginName:
          type: string
        status:
          enum:
          - DRAFT
          - VERIFIED
          - UNVERIFIED
          - DELETING
          type: string
        tsgId:
          type: string
      type: object
    MachineBatchProvisioningResultInformation:
      properties:
        endDate:
          format: date-time
          type: string
        errorMessage:
          type: string
        machineIdentitiesCount:
          format: int64
          type: integer
        machineIdentitiesFailedCount:
          format: int64
          type: integer
        machineIdentitiesSucceedCount:
          format: int64
          type: integer
        startDate:
          format: date-time
          type: string
        type:
          enum:
          - MANUAL
          - SCHEDULED
          type: string
      type: object
    ErrorInformation3:
      properties:
        args:
          items:
            $ref: '#/components/schemas/AnyValue3'
          type: array
        code:
          format: int32
          type: integer
        message:
          type: string
      type: object
    MachineDocumentResponse:
      properties:
        machines:
          items:
            $ref: '#/components/schemas/MachineDocumentInformation'
          type: array
        totalCount:
          format: int64
          type: integer
      type: object
    ErrorResponse3:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/ErrorInformation3'
          type: array
      type: object
    MachineWorkflowRequest:
      properties:
        workflowInput:
          $ref: '#/components/schemas/AnyValue3'
        workflowName:
          type: string
      type: object
    MachineCreationRequest:
      properties:
        connectionDetails:
          $ref: '#/components/schemas/AnyValue3'
        dekId:
          type: string
        edgeInstanceId:
          format: uuid
          type: string
        machineTypeId:
          deprecated: true
          format: uuid
          type: string
        name:
          minLength: 1
          type: string
        owningTeamId:
          format: uuid
          type: string
        pluginId:
          format: uuid
          type: string
        status:
          enum:
          - DRAFT
          - VERIFIED
          - UNVERIFIED
          - DELETING
          type: string
        tags:
          items:
            type: string
          type: array
      required:
      - connectionDetails
      - name
      - pluginId
      type: object
    MachineDiscoveryResultInformation:
      properties:
        certificatesCountCurrent:
          format: int64
          type: integer
        certificatesCountTotal:
          format: int64
          type: integer
        companyId:
          format: uuid
          type: string
        discoveryStatus:
          enum:
          - NEVER INITIATED
          - INITIATED
          - RUNNING
          - COMPLETED
          - ABORTED
          - ABORTING
          - FAILED
          type: string
        endDate:
          format: date-time
          type: string
        errorCount:
          format: int32
          type: integer
        machineIdentitiesCount:
          format: int64
          type: integer
        machineIdentitiesDeletedCount:
          format: int64
          type: integer
        machineIdentitiesMissingCount:
          format: int64
          type: integer
        startDate:
          format: date-time
          type: string
      type: object
    MachineOwnership:
      properties:
        owningTeams:
          items:
            format: uuid
            type: string
          type: array
          uniqueItems: true
      type: object
    AnyValue3:
      description: Can be any value - string, number, boolean, array or object.
    Paging:
      properties:
        pageNumber:
          format: int32
          type: integer
        pageSize:
          format: int32
          type: integer
      type: object
    MachinesSearchRequest:
      properties:
        expression:
          $ref: '#/components/schemas/Expression'
        ordering:
          $ref: '#/components/schemas/Ordering'
        paging:
          $ref: '#/components/schemas/Paging'
      type: object
    SchedulerPatternInformation2:
      discriminator:
        propertyName: recurrenceType
      properties:
        recurrenceType:
          type: string
      required:
      - recurrenceType
      type: object
  securitySchemes:
    scmOAuth:
      type: oauth2
      description: 'Strata Cloud Manager APIs authenticate client requests using the OAuth 2.0 Client Credentials flow. Please use the `client_id`, `client_secret` values associated with an IAM service account along with a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the Tenant Service Group (TSG) ID. The resulting JWT access token should be attached to all API calls as a `Bearer` token in the `Authorization` header (ex. `Authorization: Bearer tokenstring`).'
      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 OAuth 2.0 Client Credentials flow. Please use the `client_id`, `client_secret` values associated with an IAM service account along with a scope value of `tsg_id:XXXXXXXXXX`, where `XXXXXXXXXX` is the Tenant Service Group (TSG) ID. The resulting JWT access token should be attached to all API calls as a `Bearer` token in the `Authorization` header (ex. `Authorization: Bearer tokenstring`).'
      scheme: bearer
      bearerFormat: JWT