API Exploration Hub
Sister workspace to domus-netapi-docs. This is the workshop - raw exploration, testing, patterns, and learnings.
Philosophy
Explore first, document second, automate last.
Vendor Coverage
| System | APIs | Status | netapi Support |
|---|---|---|---|
ERS, OpenAPI, MnT, DataConnect, pxGrid |
Active |
Full |
|
Secrets, PKI, SSH CA, Auth, Audit |
Active |
Partial |
|
REST API (pfrest) |
Active |
Full |
|
RESTCONF, CLI-over-SSH |
Active |
Partial |
|
Core API, FileStation, PhotoStation |
Active |
Partial |
|
Admin REST, OIDC, SAML |
Planned |
None |
|
Chat, Embeddings, Assistants, Ollama |
Exploring |
N/A |
ISE API Deep Dive
ISE has 5 distinct APIs - each with different purposes:
| API | Purpose | Best For |
|---|---|---|
External RESTful Services - CRUD for identity/policy objects |
Endpoints, groups, profiles, dACLs, network devices |
|
Modern REST - policy management, deployment |
Policy sets, rules, conditions, node management |
|
Monitoring & Troubleshooting - sessions, CoA |
Active sessions, reauthentication, disconnect |
|
JDBC/ODBC - SQL queries against ISE database |
Historical data, reports, analytics, trends |
|
Pub/sub - real-time events, context sharing |
Session events, ANC actions, threat response |
Infrastructure Endpoints
Quick reference for API base URLs (all attributes from antora.yml):
| System | Base URL | Port |
|---|---|---|
ISE ERS |
|
9060 |
ISE OpenAPI |
|
443 |
ISE MnT |
|
443 |
ISE DataConnect |
JDBC: |
2484 |
ISE pxGrid |
|
8910 |
Vault |
|
8200 |
pfSense |
|
443 |
WLC |
|
443 |
Synology |
|
5001 |
Keycloak |
|
443 |
Patterns Library
Reusable patterns across all APIs:
-
Authentication Methods - Basic, Bearer, mTLS, OAuth2, API keys
-
Pagination - Offset, cursor, link-based
-
Error Handling - HTTP codes, retry logic, backoff
-
curl → Python - Translation patterns
-
jq Transforms - Common JSON manipulations
Workflow
1. Explore → curl/netapi in terminal, observe responses
2. Document → Add to examples/api/{vendor}/
3. Pattern → Extract reusable patterns
4. Graduate → Move production-ready to domus-netapi-docs
Quick Reference
# netapi
netapi ise ers endpoints
# curl
curl -ks -u "$ISE_USER:$ISE_PASS" \
-H "Accept: application/json" \
"https://$ISE_HOST:9060/ers/config/endpoint" | jq '.SearchResult.resources'
# CLI
vault kv get kv/infrastructure/ise
# curl
curl -ks -H "X-Vault-Token: $VAULT_TOKEN" \
"$VAULT_ADDR/v1/kv/data/infrastructure/ise" | jq '.data.data'
# netapi
netapi pfsense dns list
# curl
curl -ks -H "Authorization: Bearer $PFSENSE_TOKEN" \
"https://$PFSENSE_HOST/api/v2/services/unbound/host_overrides" | jq