Download OpenAPI specification:Download
Unified API for F5 Insight monitoring and analytics platform including device management, system operations, and AI-powered insights
JWT ACCESS TOKEN for authenticated requests.
IMPORTANT:
Example: Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
| Security Scheme Type | HTTP |
|---|---|
| HTTP Authorization Scheme | bearer |
| Bearer format | "JWT" |
| username required | string Username for authentication |
| password required | string <password> User password |
Login successful
Invalid request
Invalid credentials
Internal server error
{- "username": "admin",
- "password": "password123"
}{- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "token_type": "Bearer",
- "expires_in": 900
}Refreshes the access token using the refresh token stored in httpOnly cookie. No request body required - refresh token is read from cookie.
Token refreshed successfully
Invalid or expired refresh token
Internal server error
{- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
- "token_type": "Bearer",
- "expires_in": 900
}Logs out the user by revoking the refresh token stored in httpOnly cookie. No request body required - refresh token is read from cookie.
Logout successful
Internal server error
{- "message": "Operation successful"
}Logged out from all devices successfully
Unauthorized
Internal server error
{- "message": "Operation successful"
}Change user password using username and password. Can be called either with or without Bearer token:
| username required | string Username |
| old_password required | string <password> Current password |
| new_password required | string <password> New password |
Password changed successfully
Invalid request
Invalid credentials or unauthorized
Internal server error
{- "username": "admin",
- "old_password": "oldpassword123",
- "new_password": "newpassword123"
}{- "message": "Operation successful"
}Current AI provider configuration
No configuration found
Internal server error
{- "provider_name": "string",
- "base_url": "string",
- "model": "string",
- "ca": "string",
- "skip_tls_verify": true
}| provider_name required | string AI provider name (e.g., openai, anthropic, local) |
| api_token | string API token for the provider. Required for 'openai' and 'claude' providers, optional for 'local' provider. |
| base_url | string Base URL for the provider. Required for 'local' provider, optional for 'openai' and 'claude'. |
| model | string Model name to use. Required for 'local' provider, optional for others. |
| ca | string <uuid> Optional CA certificate UUID from trust store for custom SSL/TLS connections |
| skip_tls_verify | boolean Indicates if TLS verification should be skipped for this provider |
Configuration saved successfully
Validation error
Internal server error
{- "provider_name": "string",
- "api_token": "string",
- "base_url": "string",
- "model": "string",
- "ca": "string",
- "skip_tls_verify": true
}{- "status": "validation_success"
}Configuration deleted successfully
Configuration not found
Internal server error
{- "status": "validation_success"
}Current AIDF configuration
No configuration found
Internal server error
{- "endpoint": "string",
- "tenant_id": "string",
- "data_types": [
- "logs"
]
}| endpoint required | string AIDF endpoint URL |
| tenant_id required | string Tenant ID |
| tenant_token required | string Tenant authentication token |
| data_types | Array of strings non-empty Default: ["logs","metrics"] Items Enum: "logs" "metrics" Data types to send to AIDF (logs, metrics, or both). Defaults to ["logs", "metrics"] if not specified. Cannot be an empty array. |
Configuration saved successfully
Validation error
Internal server error
{- "endpoint": "string",
- "tenant_id": "string",
- "tenant_token": "string",
- "data_types": [
- "logs",
- "metrics"
]
}{- "status": "validation_success"
}Configuration deleted successfully
Configuration not found
Internal server error
{- "status": "validation_success"
}Fetches security insights from AIDF including alerts, scoring, and device findings. Requires AIDF to be configured. Returns sample data if AIDF endpoint fails.
| start_time | string <date-time> |
| end_time | string <date-time> |
AIDF insights retrieved successfully (flattened feed items)
Bad request or AIDF not configured
Internal server error
[- {
- "id": "sec-001",
- "title": "Content Security Policy Missing",
- "message": "The Content-Security-Policy header is not configured for host legacy-app.corp.example.com",
- "severity": "medium",
- "category": "Header",
- "deviceName": "bigip-nyc-01.example.com",
- "host": "legacy-app.corp.example.com",
- "virtualServer": "/Common/vs_web_80",
- "firstDetected": "2026-02-02T08:09:00Z"
}
]Fetches workload classification insights from AIDF including application discovery, traffic analysis, and compliance indicators. Requires AIDF to be configured. Returns sample data if AIDF endpoint fails.
| start_time | string <date-time> |
| end_time | string <date-time> |
AIDF classifications retrieved successfully (flattened feed items)
Bad request or AIDF not configured
Internal server error
[- {
- "id": "app-001",
- "title": "E-Commerce Application - Payment Gateway",
- "description": "High-value e-commerce application with PCI-DSS compliance requirements",
- "severity": "high",
- "status": "open",
- "category": "Application Discovery",
- "deviceName": "bigip-nyc-01.example.com",
- "host": "checkout.retailstore.example.com",
- "virtualServer": "/Common/vs_ecommerce_443",
- "firstDetected": "2026-01-15T09:15:00Z",
- "confidence": 0.97,
- "appCategory": "E-Commerce",
- "appSubcategory": "Payment Processing",
- "matchedRule": "Payment Gateway with PCI Compliance Indicators"
}
]{- "property1": {
- "name": "string",
- "enabled": true,
- "description": "string"
}, - "property2": {
- "name": "string",
- "enabled": true,
- "description": "string"
}
}| name required | string |
| enabled required | boolean |
Feature flag updated successfully
Bad request
Internal server error
{- "name": "string",
- "enabled": true
}{ }Returns the status of components including license, AI integrations, and device onboarding
Onboarding status retrieved successfully
Internal server error
{- "license_status": "ACTIVE",
- "custom_llm_integration": "NOT_CONFIGURED",
- "f5_aidf_integration": "NOT_CONFIGURED",
- "devices_onboarded": "NOT_CONFIGURED"
}Update onboarding status fields. All fields are optional - only provided fields will be updated.
| license_status | string Enum: "ACTIVE" "INACTIVE" Current license status |
| custom_llm_integration | string Enum: "NOT_CONFIGURED" "CONFIGURED" "SKIPPED" Custom LLM integration status |
| f5_aidf_integration | string Enum: "NOT_CONFIGURED" "CONFIGURED" "SKIPPED" F5 AIDF integration status |
| devices_onboarded | string Enum: "NOT_CONFIGURED" "CONFIGURED" "SKIPPED" Device onboarding status |
Onboarding status updated successfully
Invalid request body
Internal server error
{- "license_status": "ACTIVE",
- "custom_llm_integration": "NOT_CONFIGURED",
- "f5_aidf_integration": "NOT_CONFIGURED",
- "devices_onboarded": "NOT_CONFIGURED"
}{- "license_status": "ACTIVE",
- "custom_llm_integration": "NOT_CONFIGURED",
- "f5_aidf_integration": "NOT_CONFIGURED",
- "devices_onboarded": "NOT_CONFIGURED"
}Returns whether the current device is running in primary or standby mode based on environment variables
System role information retrieved successfully
Internal server error
{- "node_id": "standby-node-uuid",
- "node_name": "node-2",
- "status": "active",
- "role": "primary"
}Retrieve the current storage allocation configuration including percentages, TTL settings, and cleanup thresholds
Storage configuration retrieved successfully
Internal server error
{- "id": "string",
- "clickhouse_allocation_percent": 70.5,
- "victoriametrics_allocation_percent": 29.5,
- "cleanup_threshold_percent": 80,
- "cleanup_data_percent": 70,
- "sslo_logs_ttl_days": 7,
- "irule_logs_ttl_days": 7,
- "victoriametrics_retention": "12M",
- "created_at": "2026-07-13T11:03:28Z",
- "updated_at": "2026-07-13T11:03:28Z"
}Update storage allocation percentages, TTL settings, and cleanup thresholds
| clickhouse_allocation_percent required | number <double> [ 0 .. 100 ] Percentage of total storage allocated to ClickHouse (mandatory, must sum to 100 with victoriametrics_allocation_percent). Supports up to 2 decimal places. |
| victoriametrics_allocation_percent required | number <double> [ 0 .. 100 ] Percentage of total storage allocated to VictoriaMetrics (mandatory, must sum to 100 with clickhouse_allocation_percent). Supports up to 2 decimal places. |
| cleanup_threshold_percent | number <double> [ 0 .. 100 ] Threshold percentage at which cleanup is triggered (optional). Supports up to 2 decimal places. |
| cleanup_data_percent | number <double> [ 0 .. 100 ] Percentage of data to delete during cleanup (optional). Supports up to 2 decimal places. |
Storage configuration updated successfully
Invalid request
Internal server error
{- "clickhouse_allocation_percent": 70.5,
- "victoriametrics_allocation_percent": 29.5,
- "cleanup_threshold_percent": 80,
- "cleanup_data_percent": 70
}{- "id": "string",
- "clickhouse_allocation_percent": 70.5,
- "victoriametrics_allocation_percent": 29.5,
- "cleanup_threshold_percent": 80,
- "cleanup_data_percent": 70,
- "sslo_logs_ttl_days": 7,
- "irule_logs_ttl_days": 7,
- "victoriametrics_retention": "12M",
- "created_at": "2026-07-13T11:03:28Z",
- "updated_at": "2026-07-13T11:03:28Z"
}| provider_name required | string AI provider name (e.g., openai, claude, local) |
| api_token | string API token for the provider. Required for 'openai' and 'claude' providers, optional for 'local' provider. |
| base_url | string Base URL for the provider. Required for 'local' provider, optional for 'openai' and 'claude'. |
| model | string Model name to use. Required for 'local' provider, optional for others. |
| ca | string <uuid> Optional CA certificate UUID from trust store |
| skip_tls_verify | boolean Indicates if TLS verification should be skipped for this provider |
Validation successful
Validation failed
Internal server error
{- "provider_name": "string",
- "api_token": "string",
- "base_url": "string",
- "model": "string",
- "ca": "string",
- "skip_tls_verify": true
}{- "status": "validation_success",
- "error": "string"
}| endpoint required | string |
| tenant_id required | string |
| tenant_token required | string |
Validation successful
Validation failed
Internal server error
{- "endpoint": "string",
- "tenant_id": "string",
- "tenant_token": "string"
}{- "status": "validation_success",
- "error": "string"
}Returns the health status of the license service including activation status, storage metrics, and license information
License service is healthy
Service unavailable
{- "status": {
- "health": "green",
- "message": "Activation service healthy",
- "errors": [ ]
}, - "license": {
- "activation_timestamp": "2025-12-03T07:18:11Z",
- "license_sub_status": "Active",
- "status": "Active",
- "expiry_date": "2026-11-29T00:00:32Z",
- "telemetry_status": "Enabled",
- "telemetry_last_verified": "2025-12-10T05:12:45Z",
- "telemetry_error": "if any error while sending telemetry",
- "mode_of_operation": "connected"
}, - "storage": {
- "used_percent": 15.7,
- "used_gb": 500,
- "entitled_gb": 300
}
}Activates the license for the service and returns activation status and details
| jwt required | string JWT token |
| customId | string Custom ID |
| modeOfOperation required | string Enum: "connected" "disconnected" Mode of operation |
License activated successfully
Invalid activation request
Unauthorized activation attempt
Internal server error
{- "jwt": "your-jwt-token",
- "customId": "string",
- "modeOfOperation": "connected"
}{- "status": "success",
- "message": "License activated successfully",
- "license": {
- "activation_timestamp": "2025-12-03T07:18:11Z",
- "license_sub_status": "Active",
- "status": "Active",
- "expiry_date": "2026-11-29T00:00:32Z",
- "telemetry_status": "Enabled",
- "telemetry_last_verified": "2025-12-10T05:12:45Z",
- "telemetry_error": "if any error while sending telemetry",
- "mode_of_operation": "connected"
}
}Deactivates the license for the service and returns deactivation status
License deactivated successfully
Invalid deactivation request
Unauthorized deactivation attempt
Internal server error
{- "status": "success",
- "message": "License deactivated successfully",
- "digitalAssetId": "string",
- "licenseStatus": "Terminated",
- "deactivatedAt": "2026-07-13T11:03:28Z"
}Downloads the license report in disconnected mode (base64 encoded)
License report downloaded successfully
Operation not allowed in connected mode
Internal server error
{- "report": "eyJyZXBvcnROYW1lIjoibXktcmVwb3J0IiwidGVsZW1ldHJ5UmVjb3JkcyI6W119"
}Verifies a signed license report acknowledgment from F5 TEEM in disconnected mode
| manifest required | string Base64 encoded signed report acknowledgment from F5 TEEM |
Report verification initiated successfully
Invalid request body
Operation not allowed in connected mode
Internal server error
{- "manifest": "eyJzaWduZWRBY2siOiJ0ZXN0In0="
}{- "message": "Operation successful"
}Retrieves license entitlements from llm sdk
License entitlements retrieved successfully
Internal server error
{- "entitlements": { },
- "status": "success"
}Add a new data center to F5 Insights fleet.
Details of the data center to be added.
| id | string <uuid> Unique identifier for the data center |
| name required | string <= 255 characters Name of the Data Center. |
Data center added successfully.
Validation error.
Internal server error.
{- "id": "string",
- "name": "string"
}{- "status": 0,
- "message": "string",
- "code": "string",
- "category": "string",
- "help": "string"
}Retrieve all Data Centers.
List of all data centers.
Validation error.
Internal server error.
{- "data_centers": [
- {
- "id": "string",
- "name": "string"
}
]
}Delete a specific data center by its ID.
| id required | string <uuid> Unique identifier of the data center to delete. |
Data center deleted successfully.
Validation error.
Data center not found.
Cannot delete data center with associated devices.
Internal server error.
{- "status": 0,
- "message": "string",
- "code": "string",
- "category": "string",
- "help": "string"
}Retrieve all data centers with their registered devices.
List of all data centers with their devices.
Internal server error.
{- "data_centers": [
- {
- "id": "string",
- "name": "string",
- "devices": [
- {
- "retention": "string",
- "port": 1,
- "collection_interval": 1,
- "tls_enabled": false,
- "ca": "string",
- "modules": {
- "apm": false,
- "cgnat": false,
- "dns": false,
- "dos": false,
- "firewall": false,
- "gtm": false,
- "policy_api_protection": false,
- "policy_asm": false,
- "policy_firewall": false,
- "policy_ip_intelligence": false,
- "policy_nat": false,
- "profile_dos": false
}, - "id": "string",
- "alias_name": "string",
- "description": "string",
- "username": "string",
- "password": "string",
- "data_center": "string",
- "endpoint": "string",
- "deviceName": "string"
}
], - "device_count": 0
}
], - "total_data_centers": 0,
- "total_devices": 0
}Save or update global settings for BIG-IP devices.
Global settings configuration.
| retention | string (Retention) ^P(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?$ ISO 8601 duration (e.g., P1Y for 1 year, P30D for 30 days).Supported units are Y (years), M (months), D (days), H (hours), M (minutes), S (seconds). Internally converted and rounded up to whole days. Maximum allowed retention is 1 year (P1Y). |
| port | integer [ 1 .. 65535 ] |
| collection_interval | integer >= 1 Collection interval in seconds |
| tls_enabled | boolean Default: false |
| ca | string <uuid> CA certificate UUID from trust store |
| modules | object |
Global settings saved successfully.
Validation error.
Internal server error.
{- "retention": "string",
- "port": 1,
- "collection_interval": 1,
- "tls_enabled": false,
- "ca": "string",
- "modules": {
- "apm": false,
- "cgnat": false,
- "dns": false,
- "dos": false,
- "firewall": false,
- "gtm": false,
- "policy_api_protection": false,
- "policy_asm": false,
- "policy_firewall": false,
- "policy_ip_intelligence": false,
- "policy_nat": false,
- "profile_dos": false
}
}{- "status": 0,
- "message": "string",
- "code": "string",
- "category": "string",
- "help": "string"
}Retrieve current global settings.
Global settings fetched successfully.
{- "retention": "string",
- "port": 1,
- "collection_interval": 1,
- "tls_enabled": false,
- "ca": "string",
- "modules": {
- "apm": false,
- "cgnat": false,
- "dns": false,
- "dos": false,
- "firewall": false,
- "gtm": false,
- "policy_api_protection": false,
- "policy_asm": false,
- "policy_firewall": false,
- "policy_ip_intelligence": false,
- "policy_nat": false,
- "profile_dos": false
}
}certificate for TLS connections.
Certificate details and content.
| name required | string <= 255 characters Name of the certificate |
| description | string Description of the certificate |
| certificate_content required | string PEM encoded certificate content |
Certificate uploaded successfully.
Validation error.
Internal server error.
{- "name": "string",
- "description": "string",
- "certificate_content": "string"
}{- "id": "string",
- "name": "string",
- "description": "string",
- "created_at": "2026-07-13T11:03:28Z"
}Retrieve all certificates from trust store.
List of certificates.
Internal server error.
{- "trust_stores": [
- {
- "id": "string",
- "name": "string",
- "description": "string",
- "certificate_content": "string",
- "created_at": "2026-07-13T11:03:28Z",
- "last_modified": "2026-07-13T11:03:28Z"
}
]
}Retrieve a specific certificate by ID from trust store.
| id required | string <uuid> Certificate ID |
Certificate details.
Certificate not found.
Internal server error.
{- "id": "string",
- "name": "string",
- "description": "string",
- "certificate_content": "string",
- "created_at": "2026-07-13T11:03:28Z",
- "last_modified": "2026-07-13T11:03:28Z"
}Delete a certificate from trust store.
| id required | string <uuid> Certificate ID |
Certificate deleted successfully.
Certificate not found.
Certificate is in use by devices.
Internal server error.
{- "status": 0,
- "message": "string",
- "code": "string",
- "category": "string",
- "help": "string"
}Onboard a BIG-IP device to F5 Insights fleet.
Details of the BIG-IP device to be added.
| retention | string (Retention) ^P(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?$ ISO 8601 duration (e.g., P1Y for 1 year, P30D for 30 days).Supported units are Y (years), M (months), D (days), H (hours), M (minutes), S (seconds). Internally converted and rounded up to whole days. Maximum allowed retention is 1 year (P1Y). |
| port | integer [ 1 .. 65535 ] |
| collection_interval | integer >= 1 Collection interval in seconds |
| tls_enabled | boolean Default: false |
| ca | string <uuid> CA certificate UUID from trust store |
| modules | object |
| id | string <uuid> Unique identifier for the device |
| alias_name | string <= 100 characters |
| description | string <= 500 characters |
| username required | string <= 255 characters |
| password required | string <= 255 characters |
| data_center required | string <= 255 characters |
| endpoint required | string Device endpoint in format ip:port or hostname:port (e.g., 192.168.1.100:443, bigip.example.com:8443). |
Device added successfully.
Validation error.
Internal server error.
{- "retention": "string",
- "port": 1,
- "collection_interval": 1,
- "tls_enabled": false,
- "ca": "string",
- "modules": {
- "apm": false,
- "cgnat": false,
- "dns": false,
- "dos": false,
- "firewall": false,
- "gtm": false,
- "policy_api_protection": false,
- "policy_asm": false,
- "policy_firewall": false,
- "policy_ip_intelligence": false,
- "policy_nat": false,
- "profile_dos": false
}, - "id": "string",
- "alias_name": "string",
- "description": "string",
- "username": "string",
- "password": "string",
- "data_center": "string",
- "endpoint": "string"
}{- "status": 0,
- "message": "string",
- "code": "string",
- "category": "string",
- "help": "string"
}Retrieve all BIG-IP devices onboarded to F5 Insights with pagination and filtering support.
| page | integer >= 1 Default: 1 Page number for pagination (1-based). |
| size | integer >= 1 Number of items per page. |
| since | string <date-time> Return only devices updated after this timestamp (ISO 8601 format). Use the lastSync value from previous response for delta updates. |
| search | string Search term to filter devices by name, alias, or endpoint |
| sort | string Sort order, e.g. 'name,-created_at' (prefix '-' for descending) |
List of BIG-IP devices with pagination metadata.
Validation error.
Internal server error.
{- "devices": [
- {
- "retention": "string",
- "port": 1,
- "collection_interval": 1,
- "tls_enabled": false,
- "ca": "string",
- "modules": {
- "apm": false,
- "cgnat": false,
- "dns": false,
- "dos": false,
- "firewall": false,
- "gtm": false,
- "policy_api_protection": false,
- "policy_asm": false,
- "policy_firewall": false,
- "policy_ip_intelligence": false,
- "policy_nat": false,
- "profile_dos": false
}, - "id": "string",
- "alias_name": "string",
- "description": "string",
- "username": "string",
- "password": "string",
- "data_center": "string",
- "endpoint": "string",
- "deviceName": "string"
}
], - "pagination": {
- "page": 1,
- "pageSize": 1,
- "totalDevices": 0,
- "totalPages": 0
}
}Updates configuration of a BIG-IP device.
| id required | string Unique identifier of the BIG-IP device to update. |
Updated details of the BIG-IP device.
| retention | string (Retention) ^P(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?$ ISO 8601 duration (e.g., P1Y for 1 year, P30D for 30 days).Supported units are Y (years), M (months), D (days), H (hours), M (minutes), S (seconds). Internally converted and rounded up to whole days. Maximum allowed retention is 1 year (P1Y). |
| port | integer [ 1 .. 65535 ] |
| collection_interval | integer >= 1 Collection interval in seconds |
| tls_enabled | boolean Default: false |
| ca | string <uuid> CA certificate UUID from trust store |
| modules | object |
| id | string <uuid> Unique identifier for the device |
| alias_name | string <= 100 characters |
| description | string <= 500 characters |
| username required | string <= 255 characters |
| password required | string <= 255 characters |
| data_center required | string <= 255 characters |
| endpoint required | string Device endpoint in format ip:port or hostname:port (e.g., 192.168.1.100:443, bigip.example.com:8443). |
Device updated successfully.
Validation error.
Internal server error.
{- "retention": "string",
- "port": 1,
- "collection_interval": 1,
- "tls_enabled": false,
- "ca": "string",
- "modules": {
- "apm": false,
- "cgnat": false,
- "dns": false,
- "dos": false,
- "firewall": false,
- "gtm": false,
- "policy_api_protection": false,
- "policy_asm": false,
- "policy_firewall": false,
- "policy_ip_intelligence": false,
- "policy_nat": false,
- "profile_dos": false
}, - "id": "string",
- "alias_name": "string",
- "description": "string",
- "username": "string",
- "password": "string",
- "data_center": "string",
- "endpoint": "string"
}{- "status": 0,
- "message": "string",
- "code": "string",
- "category": "string",
- "help": "string"
}Partially updates configuration of a BIG-IP device. Only provided fields are updated.
| id required | string Unique identifier of the BIG-IP device to update. |
Partial device update. Only include fields that should be updated.
| alias_name | string <= 100 characters |
| description | string <= 500 characters |
| username | string <= 255 characters |
| password | string <= 255 characters |
| endpoint | string |
| data_center | string <= 255 characters |
| retention | string (Retention) ^P(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?$ ISO 8601 duration (e.g., P1Y for 1 year, P30D for 30 days).Supported units are Y (years), M (months), D (days), H (hours), M (minutes), S (seconds). Internally converted and rounded up to whole days. Maximum allowed retention is 1 year (P1Y). |
| collection_interval | integer >= 1 |
| tls_enabled | boolean |
| ca | string <uuid> |
| modules | object |
Device partially updated successfully.
Validation error.
Device not found.
Internal server error.
{- "alias_name": "string",
- "description": "string",
- "username": "string",
- "password": "string",
- "endpoint": "string",
- "data_center": "string",
- "retention": "string",
- "collection_interval": 1,
- "tls_enabled": true,
- "ca": "string",
- "modules": {
- "apm": true,
- "cgnat": true,
- "dns": true,
- "dos": true,
- "firewall": true,
- "gtm": true,
- "profile_dos": true,
- "policy_api_protection": true,
- "policy_asm": true,
- "policy_firewall": true,
- "policy_ip_intelligence": true,
- "policy_nat": true
}
}{- "retention": "string",
- "port": 1,
- "collection_interval": 1,
- "tls_enabled": false,
- "ca": "string",
- "modules": {
- "apm": false,
- "cgnat": false,
- "dns": false,
- "dos": false,
- "firewall": false,
- "gtm": false,
- "policy_api_protection": false,
- "policy_asm": false,
- "policy_firewall": false,
- "policy_ip_intelligence": false,
- "policy_nat": false,
- "profile_dos": false
}, - "id": "string",
- "alias_name": "string",
- "description": "string",
- "username": "string",
- "password": "string",
- "data_center": "string",
- "endpoint": "string",
- "deviceName": "string"
}Fetch details of a specific BIG-IP device.
| id required | string Unique identifier of the BIG-IP device. |
Device fetched successfully.
Validation error.
Internal server error.
{- "retention": "string",
- "port": 1,
- "collection_interval": 1,
- "tls_enabled": false,
- "ca": "string",
- "modules": {
- "apm": false,
- "cgnat": false,
- "dns": false,
- "dos": false,
- "firewall": false,
- "gtm": false,
- "policy_api_protection": false,
- "policy_asm": false,
- "policy_firewall": false,
- "policy_ip_intelligence": false,
- "policy_nat": false,
- "profile_dos": false
}, - "id": "string",
- "alias_name": "string",
- "description": "string",
- "username": "string",
- "password": "string",
- "data_center": "string",
- "endpoint": "string",
- "deviceName": "string"
}Delete specific BIG-IP device.
| id required | string Unique identifier of the BIG-IP device. |
Device deleted successfully.
Validation error.
Internal server error.
{- "retention": "string",
- "port": 1,
- "collection_interval": 1,
- "tls_enabled": false,
- "ca": "string",
- "modules": {
- "apm": false,
- "cgnat": false,
- "dns": false,
- "dos": false,
- "firewall": false,
- "gtm": false,
- "policy_api_protection": false,
- "policy_asm": false,
- "policy_firewall": false,
- "policy_ip_intelligence": false,
- "policy_nat": false,
- "profile_dos": false
}, - "id": "string",
- "alias_name": "string",
- "description": "string",
- "username": "string",
- "password": "string",
- "data_center": "string",
- "endpoint": "string"
}Validate connectivity from F5 Insights to a BIG-IP device using provided credentials.
Device details required for connection validation.
| retention | string (Retention) ^P(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?$ ISO 8601 duration (e.g., P1Y for 1 year, P30D for 30 days).Supported units are Y (years), M (months), D (days), H (hours), M (minutes), S (seconds). Internally converted and rounded up to whole days. Maximum allowed retention is 1 year (P1Y). |
| port | integer [ 1 .. 65535 ] |
| collection_interval | integer >= 1 Collection interval in seconds |
| tls_enabled | boolean Default: false |
| ca | string <uuid> CA certificate UUID from trust store |
| modules | object |
| id | string <uuid> Unique identifier for the device |
| alias_name | string <= 100 characters |
| description | string <= 500 characters |
| username required | string <= 255 characters |
| password required | string <= 255 characters |
| data_center required | string <= 255 characters |
| endpoint required | string Device endpoint in format ip:port or hostname:port (e.g., 192.168.1.100:443, bigip.example.com:8443). |
Connection validation result.
Validation error.
Internal server error.
{- "retention": "string",
- "port": 1,
- "collection_interval": 1,
- "tls_enabled": false,
- "ca": "string",
- "modules": {
- "apm": false,
- "cgnat": false,
- "dns": false,
- "dos": false,
- "firewall": false,
- "gtm": false,
- "policy_api_protection": false,
- "policy_asm": false,
- "policy_firewall": false,
- "policy_ip_intelligence": false,
- "policy_nat": false,
- "profile_dos": false
}, - "id": "string",
- "alias_name": "string",
- "description": "string",
- "username": "string",
- "password": "string",
- "data_center": "string",
- "endpoint": "string"
}{- "reachable": true,
- "authenticated": true,
- "message": "string"
}Get the currently running or most recent migration task. Returns the active migration task if one is in progress, otherwise returns the most recent completed/failed task.
Migration task information retrieved successfully
No migration tasks found
Internal server error
{- "task_id": "123e4567-e89b-12d3-a456-426614174000",
- "status": "INIT",
- "message": "Migration task created successfully. Use the task_id to query status."
}Start an asynchronous migration task for BIG-IP devices from AST (Application Study Tool) configuration files. Returns a task ID that can be used to query migration status. Only one migration task can be running at a time - attempting to start a second task will return an error.
AST configuration files containing device information.
| defaults_file required | string <binary> ast_defaults.yaml file containing default settings (YAML format) |
| receivers_file required | string <binary> ast_receivers.yml file containing receiver configurations (YAML format) |
Migration task created successfully. Use the returned task_id to query status.
Validation error in uploaded files.
A migration task is already in progress.
Internal server error.
{- "task_id": "123e4567-e89b-12d3-a456-426614174000",
- "status": "INIT",
- "message": "Migration task created successfully. Use the task_id to query status."
}Get the status of a device migration task including overall progress and individual device status.
| task_id required | string <uuid> The task ID returned from the migration request |
| include_devices | boolean Default: true Include individual device status details |
| limit | integer [ 1 .. 1000 ] Default: 100 Maximum number of device details to return |
| offset | integer >= 0 Default: 0 Offset for pagination of device details |
| updated_since | string <date-time> Filter devices updated since this timestamp (ISO 8601 format, e.g., 2026-01-30T08:00:00Z) |
Migration status retrieved successfully
Task not found
Internal server error
{- "task_id": "123e4567-e89b-12d3-a456-426614174000",
- "task_type": "MIGRATION",
- "state": "IN_PROGRESS",
- "status": "RUNNING",
- "progress": 45,
- "total_devices": 100,
- "pending_devices": 55,
- "validated_devices": 40,
- "failed_devices": 5,
- "error_message": null,
- "created_at": "2026-01-29T10:30:00Z",
- "updated_at": "2026-01-29T10:35:00Z",
- "devices": [
- {
- "device_name": "bigip/prod-01",
- "validation_status": "SUCCESS",
- "error_message": null,
- "created_at": "2026-01-29T10:30:00Z",
- "updated_at": "2026-01-29T10:32:00Z"
}
]
}Get paginated device-level progress for a migration task with delta update support. Use this for live UI updates showing per-device status (Connected/Failed/In Progress). Supports polling with 'since' parameter to fetch only recently updated devices.
| task_id required | string <uuid> The task ID returned from the migration request |
| page | integer >= 1 Default: 1 Page number for pagination (1-based). |
| size | integer >= 1 Number of items per page. |
| since | string <date-time> Return only devices updated after this timestamp (ISO 8601 format). Use the lastSync value from previous response for delta updates. |
| search | string Search term to filter devices by name, alias, or endpoint |
| sort | string Sort order, e.g. 'name,-created_at' (prefix '-' for descending) |
Device progress retrieved successfully
Invalid request parameters
Task not found
Internal server error
{- "task_id": "550e8400-e29b-41d4-a716-446655440000",
- "task_status": "RUNNING",
- "task_progress": 45,
- "page": 1,
- "size": 20,
- "total": 45,
- "last_sync": "2026-01-30T12:12:30Z",
- "devices": [
- {
- "id": "660e8400-e29b-41d4-a716-446655440001",
- "device_name": "bigip-prod-01.example.com",
- "status": "SUCCESS",
- "error_message": "Invalid credentials",
- "last_modified": "2026-01-30T12:12:00Z"
}
]
}Retrieve all staging CA certificates associated with a migration task. Returns the list of CA bundles that were extracted during the migration process and are available for validation and commit operations.
| task_id required | string <uuid> The task ID returned from the migration request |
| page | integer >= 1 Default: 1 Page number for pagination (1-based). |
| size | integer >= 1 Number of items per page. |
CA bundle list retrieved successfully
Invalid request parameters
Task not found
Internal server error
{- "task_id": "550e8400-e29b-41d4-a716-446655440000",
- "page": 1,
- "size": 20,
- "total": 5,
- "ca_bundles": [
- {
- "id": "660e8400-e29b-41d4-a716-446655440000",
- "name": "Production Root CA",
- "description": "Root CA for production environment",
- "certificate_content": "-----BEGIN CERTIFICATE-----\nMIIDXTCCAkWgA...\n-----END CERTIFICATE-----",
- "created_at": "2026-01-30T10:00:00Z",
- "last_modified": "2026-01-30T12:00:00Z"
}
]
}Clean up all staging data associated with a migration task. This removes all staging devices and trust store entries that have not been committed. Successfully committed devices and trust stores remain intact.
| task_id required | string <uuid> The task ID to clean up |
| force | boolean Default: false Force cleanup even if task is still running. WARNING: Use with extreme caution - only when a task is stuck for a very long time. Forcing cleanup of a running task may lead to inconsistent state. |
Cleanup completed successfully
Task not found
Internal server error
{- "task_id": "123e4567-e89b-12d3-a456-426614174000",
- "deleted_devices": 10,
- "deleted_trust_stores": 5,
- "message": "Successfully cleaned up migration task staging data"
}Retry failed devices from an existing migration task. This endpoint reuses the same task ID and only retries devices with validation_status = 'FAILED'. Failed devices are reset to 'PENDING' and the task state is reset to 'IN_PROGRESS'.
Requirements:
The retry process:
| task_id required | string <uuid> The task ID to retry failed devices for |
Retry initiated successfully. Use the same task_id to query status.
No failed devices to retry
Task not found
A migration task is already running
Internal server error
{- "message": "Retry task initiated successfully",
- "task_id": "123e4567-e89b-12d3-a456-426614174000"
}Retrieve details of a specific staging device including its validation status, configuration, and error messages if any.
| staging_device_id required | string <uuid> UUID of the staging device to retrieve |
Staging device retrieved successfully
Staging device not found
Internal server error
{- "id": "660e8400-e29b-41d4-a716-446655440001",
- "task_id": "550e8400-e29b-41d4-a716-446655440000",
- "device_name": "bigip-prod-01.example.com",
- "username": "admin",
- "data_center": "US-EAST-1",
- "tls_enabled": true,
- "ca_bundle_id": "660e8400-e29b-41d4-a716-446655440002",
- "collection_interval": 60,
- "validation_status": "SUCCESS",
- "error_message": "Connection timeout",
- "created_at": "2026-01-30T10:00:00Z",
- "last_modified": "2026-01-30T12:00:00Z"
}Updates a single staging device with provided fields, validates connectivity, and commits the device to the main devices table. If a device with the same endpoint exists, it will be updated instead of creating a new one.
| staging_device_id required | string <uuid> UUID of the staging device to update |
| alias_name | string <= 100 characters |
| description | string <= 500 characters |
| username | string <= 255 characters |
| password | string <= 255 characters |
| endpoint | string |
| data_center | string <= 255 characters |
| retention | string (Retention) ^P(\d+Y)?(\d+M)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?$ ISO 8601 duration (e.g., P1Y for 1 year, P30D for 30 days).Supported units are Y (years), M (months), D (days), H (hours), M (minutes), S (seconds). Internally converted and rounded up to whole days. Maximum allowed retention is 1 year (P1Y). |
| collection_interval | integer >= 1 |
| tls_enabled | boolean |
| ca | string <uuid> |
| modules | object |
Staging device updated and committed successfully
Device validation failed or invalid request
Staging device not found
Internal server error
{- "alias_name": "string",
- "description": "string",
- "username": "string",
- "password": "string",
- "endpoint": "string",
- "data_center": "string",
- "retention": "string",
- "collection_interval": 1,
- "tls_enabled": true,
- "ca": "string",
- "modules": {
- "apm": true,
- "cgnat": true,
- "dns": true,
- "dos": true,
- "firewall": true,
- "gtm": true,
- "profile_dos": true,
- "policy_api_protection": true,
- "policy_asm": true,
- "policy_firewall": true,
- "policy_ip_intelligence": true,
- "policy_nat": true
}
}{- "message": "Staging device updated and committed successfully",
- "staging_device_id": "string"
}Updates a single staging CA bundle with provided fields, validates certificate format, and commits the certificate to the trust_store table. If a certificate with the same content already exists, it will be linked instead of creating a duplicate.
| staging_ca_id required | string <uuid> UUID of the staging CA bundle to update |
| name required | string <= 255 characters Name of the certificate |
| description | string Description of the certificate |
| certificate_content required | string PEM encoded certificate content |
Staging CA bundle updated and committed successfully
Invalid certificate data
Staging CA bundle not found
Internal server error
{- "name": "string",
- "description": "string",
- "certificate_content": "string"
}{- "message": "Staging CA bundle updated and committed successfully",
- "staging_ca_id": "string"
}Synchronous migration of BIG-IP devices from AST configuration files (legacy endpoint). For better experience with large migrations, use the async endpoint instead.
AST configuration files containing device information.
| defaults_file required | string <binary> ast_defaults.yaml file containing default settings (YAML format) |
| receivers_file required | string <binary> ast_receivers.yml file containing receiver configurations (YAML format) |
Migration completed with summary of results.
Validation error in uploaded files.
Internal server error.
{- "total": 10,
- "successful": 8,
- "failed": 2,
- "results": [
- {
- "device_name": "bigip-prod-01",
- "status": "success",
- "message": "Device imported successfully",
- "device_id": "123e4567-e89b-12d3-a456-426614174000"
}
]
}Import multiple BIG-IP devices to F5 Insights in a single operation.
Array of devices to be imported.
| devices required | Array of objects (Device) non-empty List of devices to import |
Bulk import completed with summary of results.
Validation error.
Internal server error.
{- "devices": [
- {
- "retention": "string",
- "port": 1,
- "collection_interval": 1,
- "tls_enabled": false,
- "ca": "string",
- "modules": {
- "apm": false,
- "cgnat": false,
- "dns": false,
- "dos": false,
- "firewall": false,
- "gtm": false,
- "policy_api_protection": false,
- "policy_asm": false,
- "policy_firewall": false,
- "policy_ip_intelligence": false,
- "policy_nat": false,
- "profile_dos": false
}, - "id": "string",
- "alias_name": "string",
- "description": "string",
- "username": "string",
- "password": "string",
- "data_center": "string",
- "endpoint": "string"
}
]
}{- "total": 10,
- "successful": 8,
- "failed": 2,
- "results": [
- {
- "device_name": "bigip-prod-01",
- "status": "success",
- "message": "Device imported successfully",
- "device_id": "123e4567-e89b-12d3-a456-426614174000"
}
]
}Starts async task to configure Node1 as primary and Node2 as standby
| primary_node required | object (PrimaryNodeConfig) |
| standby_node required | object (StandbyNodeConfig) |
HA initialization task created successfully
Invalid request body
HA already exists or active task exists
Internal server error
{- "primary_node": {
- "node_name": "primary-node",
- "site": "primary-site"
}, - "standby_node": {
- "node_name": "standby-node",
- "site": "standby-site"
}
}{- "task_id": "550e8400-e29b-41d4-a716-446655440000",
- "status": "pending",
- "message": "HA initialization task created. Poll /api/dr-ha/tasks/550e8400-e29b-41d4-a716-446655440000 for progress.",
- "created_at": "2026-01-30T10:00:00Z"
}Retrieves the current status and progress of an HA initialization task
| task_id required | string <uuid> Task ID (UUID) |
Task status retrieved successfully
Task not found
{- "task_id": "550e8400-e29b-41d4-a716-446655440000",
- "task_type": "initialize",
- "status": "in_progress",
- "current_step": "Configuring PostgreSQL replication on standby node",
- "total_steps": 8,
- "completed_steps": 3,
- "progress_pct": 37,
- "error_message": null,
- "sub_tasks": [
- {
- "component": "postgres",
- "role": "primary",
- "status": "completed",
- "description": "Setting up PostgreSQL replication user",
- "error_detail": null
}
], - "started_at": "2026-01-30T10:00:05Z",
- "completed_at": null,
- "duration": null
}Retrieves the current status of the HA cluster including all nodes
Cluster status retrieved successfully
No HA cluster configured
{- "cluster_id": "660e8400-e29b-41d4-a716-446655440001",
- "cluster_name": "primary-standby-cluster",
- "status": "active",
- "site": "primary-site",
- "nodes": [
- {
- "node_id": "770e8400-e29b-41d4-a716-446655440002",
- "node_name": "primary-node",
- "role": "primary",
- "status": "healthy",
- "services": {
- "postgres": "healthy",
- "vault": "healthy",
- "victoriametrics": "healthy",
- "clickhouse": "healthy",
- "otel": "healthy"
}, - "last_checked": "2026-01-30T12:15:00Z"
}
], - "initialized_at": "2026-01-30T10:05:00Z",
- "last_failover_at": null
}Initiates failover from current primary to standby node (promotes standby to primary)
| force | boolean Default: false Skip health checks and force failover (use with caution) |
| timeout_seconds | integer >= 60 Default: 300 Maximum time to wait for failover to complete (in seconds) |
Failover task created successfully
Invalid request body
No HA cluster configured
Internal server error
{- "force": false,
- "timeout_seconds": 300
}{- "task_id": "550e8400-e29b-41d4-a716-446655440000",
- "status": "pending",
- "message": "HA initialization task created. Poll /api/dr-ha/tasks/550e8400-e29b-41d4-a716-446655440000 for progress.",
- "created_at": "2026-01-30T10:00:00Z"
}Reconfigures this node as standby to replicate from new primary
| new_primary_address required | string Address of the new primary node in format http://hostname:port |
| new_primary_node_name | string Name of the new primary node |
| force | boolean Default: false Skip health checks and force failback (use with caution) |
Failback task created successfully
Invalid request body
No HA cluster configured
Internal server error
{- "new_primary_node_name": "new-primary-node",
- "force": false
}{- "task_id": "550e8400-e29b-41d4-a716-446655440000",
- "status": "pending",
- "message": "HA initialization task created. Poll /api/dr-ha/tasks/550e8400-e29b-41d4-a716-446655440000 for progress.",
- "created_at": "2026-01-30T10:00:00Z"
}Returns the health status of the system manager service
Service is healthy
{- "success": true,
- "data": {
- "status": "healthy",
- "platform_manager": "available"
}
}Returns the current F5 Insight version information
Version information retrieved successfully
{- "success": true,
- "data": {
- "version": "1.2.0",
- "build_date": "2025-01-14",
- "git_commit": "abc1234"
}
}Returns information about the currently uploaded bundle, if any
Bundle info retrieved successfully
{- "data": {
- "available": true,
- "name": "f5insight-1.1.0-11-bundle.tar.gz",
- "version": "1.1.0-11",
- "size": 1073741824,
- "message": "Bundle ready for upgrade"
}
}Upload an upgrade bundle (.tar.gz) for system upgrade. The bundle is saved to disk. Use /api/system/upgrade/start to begin the upgrade.
| bundle required | string <binary> Upgrade bundle file (.tar.gz) |
Bundle uploaded successfully
Invalid request or bundle
Another operation is in progress
{- "success": true,
- "data": {
- "filename": "f5insight-1.2.0-bundle.tar.gz",
- "size": 1073741824,
- "message": "Bundle uploaded. Ready to start upgrade."
}
}Initiates the upgrade process using the previously uploaded bundle. Extracts the bundle if needed and starts the upgrade.
Upgrade started successfully
No bundle found
Another operation is in progress
Platform manager unavailable
{- "success": true,
- "data": {
- "message": "Upgrade started successfully"
}
}Returns the current status of the upgrade operation
Status retrieved successfully
{- "success": true,
- "data": {
- "status": "idle",
- "message": "no action in progress"
}
}