prisma-sase-api

How to interact with the Palo Alto Networks Prisma SASE API, including Prisma Access, Prisma SD-WAN, and Prisma Access Browser. Use this skill whenever the user wants to query, configure, monitor, or automate anything related to Prisma SASE, Prisma Access, Prisma SD-WAN, Prisma Access Browser, Palo Alto SASE, PANW SASE, or network security policies managed through the SASE platform. Also trigger when the user mentions tenant service groups (TSGs), SASE API tokens, security policy rules, SD-WAN sites, remote networks, GlobalProtect, or aggregate monitoring via the SASE platform.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "prisma-sase-api" with this command: npx skills add leesandao/prisma-sase-api

Prisma SASE API Integration

This skill generates working curl commands and Python scripts to interact with the Palo Alto Networks Prisma SASE platform API. It covers three main products:

  • Prisma Access — Cloud-delivered network security (security policies, remote networks, GlobalProtect, service connections)
  • Prisma SD-WAN — Software-defined WAN (site configs, routing, path policies, performance monitoring)
  • Prisma Access Browser — Secure enterprise browser management

Quick Reference

ComponentBase URL
API Gatewayhttps://api.sase.paloaltonetworks.com
Auth Endpointhttps://auth.apps.paloaltonetworks.com/oauth2/access_token
ProductURL Prefix
Prisma Access Config/sse/config/v1/...
SD-WAN/sdwan/v2.1/api/...
Aggregate Monitoring/mt/monitor/v1/...
IAM/iam/v1/...
Tenancy/tenancy/v1/...
Subscription/subscription/v1/...

Authentication

All API calls use OAuth2 client credentials flow. The user needs three values:

  • client_id and client_secret — from a service account created in the Prisma SASE UI
  • tsg_id — the Tenant Service Group ID scoping the token

Get an access token

curl -s -X POST "https://auth.apps.paloaltonetworks.com/oauth2/access_token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -u "${CLIENT_ID}:${CLIENT_SECRET}" \
  -d "grant_type=client_credentials&scope=tsg_id:${TSG_ID}"

The response returns a JWT access token valid for 15 minutes. There is no refresh token — request a new one when it expires.

Python authentication helper

When generating Python scripts, use the helper at scripts/sase_auth.py (relative to this skill directory). Read it for the implementation — it handles token caching and auto-renewal.

Required headers for all API calls

Authorization: Bearer <ACCESS_TOKEN>
Content-Type: application/json

Some services also require a regional header:

x-panw-region: <region_code>

Required for: Aggregate Monitoring, ZTNA Connector, Autonomous DEM. Valid regions: americas, au, ca, de, europe, in, jp, sg, uk.

Important: Including x-panw-region on services that don't need it causes errors. Only add it when the endpoint requires it.

Product-Specific Guides

Depending on what the user needs, read the relevant reference file for detailed endpoint documentation:

User wants to...Read this file
Manage security policies, remote networks, GlobalProtect, service connections, decryption rules, or any Prisma Access configurationreferences/prisma-access.md
Configure SD-WAN sites, routing, path policies, NAT, QoS, or query SD-WAN metrics/eventsreferences/prisma-sdwan.md
Manage Prisma Access Browser settings, policies, or deploymentsreferences/prisma-browser.md
Set up authentication, manage tokens, or troubleshoot auth issuesreferences/authentication.md
Query aggregate monitoring data, alerts, or multi-tenant reportsreferences/monitoring.md

Read the appropriate reference file before generating API calls for that product area.

Common API Patterns

Prisma Access Configuration: Candidate/Running Config Model

Prisma Access uses a two-stage configuration model. Changes go to a "candidate" config first, then must be pushed to become the "running" config:

  1. Make changes — POST/PUT/DELETE to config endpoints (creates candidate changes)
  2. Push candidate config:
    curl -s -X POST "https://api.sase.paloaltonetworks.com/sse/config/v1/config-versions/candidate:push" \
      -H "Authorization: Bearer ${TOKEN}" \
      -H "Content-Type: application/json" \
      -d '{"folders": ["All"]}'
    
  3. Monitor the push job until it completes
  4. The candidate becomes the running configuration

Always remind the user that config changes won't take effect until pushed.

SD-WAN: Profile Initialization

After obtaining a token, the first SD-WAN API call must be:

curl -s -X GET "https://api.sase.paloaltonetworks.com/sdwan/v2.1/api/profile" \
  -H "Authorization: Bearer ${TOKEN}"

Skipping this causes 403 errors on subsequent SD-WAN calls.

Aggregate Monitoring: POST-based Filtering

Monitoring queries use POST with structured filter bodies, not query parameters:

{
  "filter": {
    "operator": "AND",
    "rules": [
      {"property": "severity", "operator": "in", "values": ["Critical", "High"]},
      {"property": "event_time", "operator": "last_n_days", "values": [7]}
    ]
  },
  "properties": [
    {"property": "total_count"},
    {"property": "severity"}
  ]
}

Filter operators: in, gt, lt, last_n_minutes, last_n_hours, last_n_days.

Multi-tenant Aggregation

Add ?agg_by=tenant to aggregate responses across a parent tenant and all child tenants.

Common Error Codes

CodeMeaningAction
400Bad requestCheck request body/params
401UnauthorizedToken expired or invalid — re-authenticate
403ForbiddenInsufficient role permissions (or SD-WAN profile not initialized)
409ConflictResource already exists or version conflict

Script Generation Guidelines

When generating scripts for the user:

  1. Always parameterize credentials — never hardcode client_id, client_secret, or tsg_id. Use environment variables or prompt the user.
  2. Handle token expiry — tokens last 15 minutes. For long-running scripts, implement token refresh logic.
  3. Include error handling — check HTTP status codes and print meaningful error messages.
  4. Use the auth helper — for Python scripts, reference scripts/sase_auth.py for a reusable auth class.
  5. Remind about config push — when generating Prisma Access config changes, always include the push step or remind the user it's needed.
  6. Initialize SD-WAN profile — when generating SD-WAN scripts, include the profile initialization call.

Tenant Service Groups (TSGs)

TSGs are the organizational hierarchy for multi-tenancy:

  • A TSG contains tenants and/or child TSGs
  • OAuth tokens are scoped to a specific TSG and its children
  • The root TSG must be created via UI; child TSGs can be created via API
  • Key endpoints:
    • GET /tenancy/v1/tenant_service_groups — list all TSGs
    • TSG children and ancestors are also queryable

IAM and Roles

Service accounts need appropriate roles assigned to perform API operations. Key roles:

  • Superuser — full read/write
  • Security Admin — security policy management
  • Network Admin — network policy and logs
  • View Only Administrator — read-only across all
  • SOC Analyst — read-only for logs, reports, alerts

If the user gets 403 errors, suggest checking their service account's role assignments.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Security

Claw Soul Backup

Store encrypted OpenClaw workspace backups and restore them via token-secured API using claw-vault.com with local encryption and credential management.

Registry SourceRecently Updated
0220
Profile unavailable
Security

Secure API Calls

Call any API without leaking credentials. Keychains proxies requests and injects real tokens server-side — your agent never sees them.

Registry SourceRecently Updated
42K
Profile unavailable
Security

CORS Tester

Test and debug CORS (Cross-Origin Resource Sharing) configurations on live URLs. Use when checking if a server returns correct CORS headers, debugging CORS e...

Registry SourceRecently Updated
046
Profile unavailable