F5 Insight API (v1.0.0)

Download OpenAPI specification:Download

Unified API for F5 Insight monitoring and analytics platform including device management, system operations, and AI-powered insights

Authentication

BearerAuth

JWT ACCESS TOKEN for authenticated requests.

IMPORTANT:

  • Use ACCESS TOKEN (short-lived, 5 min) in Authorization header: "Bearer "
  • Use REFRESH TOKEN (long-lived, 10 hrs) ONLY in request body for /auth/refresh endpoint
  • DO NOT use refresh token in Authorization header - it will fail!

Example: Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Security Scheme Type HTTP
HTTP Authorization Scheme bearer
Bearer format "JWT"

Authentication

User login

Request Body schema: application/json
username
required
string

Username for authentication

password
required
string <password>

User password

Responses

200

Login successful

400

Invalid request

401

Invalid credentials

500

Internal server error

post/auth/login

API base path

/api/auth/login

System Manager API

/auth/login

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "username": "admin",
  • "password": "password123"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  • "token_type": "Bearer",
  • "expires_in": 900
}

Refresh access token

Refreshes the access token using the refresh token stored in httpOnly cookie. No request body required - refresh token is read from cookie.

Responses

200

Token refreshed successfully

401

Invalid or expired refresh token

500

Internal server error

post/auth/refresh

API base path

/api/auth/refresh

System Manager API

/auth/refresh

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  • "token_type": "Bearer",
  • "expires_in": 900
}

Logout user (revoke refresh token)

Logs out the user by revoking the refresh token stored in httpOnly cookie. No request body required - refresh token is read from cookie.

Responses

200

Logout successful

500

Internal server error

post/auth/logout

API base path

/api/auth/logout

System Manager API

/auth/logout

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "message": "Operation successful"
}

Logout from all devices

Responses

200

Logged out from all devices successfully

401

Unauthorized

500

Internal server error

post/auth/logout-all

API base path

/api/auth/logout-all

System Manager API

/auth/logout-all

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "message": "Operation successful"
}

Configuration

Get current AI provider configuration

Responses

200

Current AI provider configuration

204

No configuration found

500

Internal server error

get/ai-integrations/llm-provider

API base path

/api/ai-integrations/llm-provider

System Manager API

/ai-integrations/llm-provider

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "provider_name": "string",
  • "base_url": "string",
  • "model": "string",
  • "ca": "string",
  • "skip_tls_verify": true
}

Save AI provider configuration

Request Body schema: application/json
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

Responses

200

Configuration saved successfully

400

Validation error

500

Internal server error

post/ai-integrations/llm-provider

API base path

/api/ai-integrations/llm-provider

System Manager API

/ai-integrations/llm-provider

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "provider_name": "string",
  • "api_token": "string",
  • "base_url": "string",
  • "model": "string",
  • "ca": "string",
  • "skip_tls_verify": true
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": "validation_success"
}

Delete AI provider configuration

Responses

200

Configuration deleted successfully

404

Configuration not found

500

Internal server error

delete/ai-integrations/llm-provider

API base path

/api/ai-integrations/llm-provider

System Manager API

/ai-integrations/llm-provider

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": "validation_success"
}

Get current AIDF configuration

Responses

200

Current AIDF configuration

204

No configuration found

500

Internal server error

get/ai-integrations/aidf

API base path

/api/ai-integrations/aidf

System Manager API

/ai-integrations/aidf

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "endpoint": "string",
  • "tenant_id": "string",
  • "data_types":
    [
    ]
}

Save AIDF configuration

Request Body schema: application/json
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.

Responses

200

Configuration saved successfully

400

Validation error

500

Internal server error

post/ai-integrations/aidf

API base path

/api/ai-integrations/aidf

System Manager API

/ai-integrations/aidf

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "endpoint": "string",
  • "tenant_id": "string",
  • "tenant_token": "string",
  • "data_types":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": "validation_success"
}

Delete AIDF configuration

Responses

200

Configuration deleted successfully

404

Configuration not found

500

Internal server error

delete/ai-integrations/aidf

API base path

/api/ai-integrations/aidf

System Manager API

/ai-integrations/aidf

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": "validation_success"
}

AIDF Insights

Get AIDF security insights

Fetches security insights from AIDF including alerts, scoring, and device findings. Requires AIDF to be configured. Returns sample data if AIDF endpoint fails.

Responses

200

AIDF insights retrieved successfully (flattened feed items)

400

Bad request or AIDF not configured

500

Internal server error

get/ai-integrations/aidf/insights

API base path

/api/ai-integrations/aidf/insights

System Manager API

/ai-integrations/aidf/insights

Response samples

Content type
application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Get AIDF workload classifications

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.

Responses

200

AIDF classifications retrieved successfully (flattened feed items)

400

Bad request or AIDF not configured

500

Internal server error

get/ai-integrations/aidf/classifications

API base path

/api/ai-integrations/aidf/classifications

System Manager API

/ai-integrations/aidf/classifications

Response samples

Content type
application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Validators

Validate AI provider configuration

Request Body schema: application/json
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

Responses

200

Validation successful

400

Validation failed

500

Internal server error

post/validate/inference_provider

API base path

/api/validate/inference_provider

System Manager API

/validate/inference_provider

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "provider_name": "string",
  • "api_token": "string",
  • "base_url": "string",
  • "model": "string",
  • "ca": "string",
  • "skip_tls_verify": true
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": "validation_success",
  • "error": "string"
}

Validate AIDF configuration

Request Body schema: application/json
endpoint
required
string
tenant_id
required
string
tenant_token
required
string

Responses

200

Validation successful

400

Validation failed

500

Internal server error

post/validate/aidf

API base path

/api/validate/aidf

System Manager API

/validate/aidf

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "endpoint": "string",
  • "tenant_id": "string",
  • "tenant_token": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": "validation_success",
  • "error": "string"
}

License

Check license service health status

Returns the health status of the license service including activation status, storage metrics, and license information

Responses

200

License service is healthy

503

Service unavailable

get/license/health

API base path

/api/license/health

System Manager API

/license/health

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status":
    {
    },
  • "license":
    {
    },
  • "storage":
    {
    }
}

Activate license

Activates the license for the service and returns activation status and details

Request Body schema: application/json
jwt
required
string

JWT token

customId
string

Custom ID

modeOfOperation
required
string
Enum: "connected" "disconnected"

Mode of operation

Responses

200

License activated successfully

400

Invalid activation request

401

Unauthorized activation attempt

500

Internal server error

post/license/activate

API base path

/api/license/activate

System Manager API

/license/activate

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "jwt": "your-jwt-token",
  • "customId": "string",
  • "modeOfOperation": "connected"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": "success",
  • "message": "License activated successfully",
  • "license":
    {
    }
}

Deactivate license

Deactivates the license for the service and returns deactivation status

Responses

200

License deactivated successfully

400

Invalid deactivation request

401

Unauthorized deactivation attempt

500

Internal server error

post/license/deactivate

API base path

/api/license/deactivate

System Manager API

/license/deactivate

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": "success",
  • "message": "License deactivated successfully",
  • "digitalAssetId": "string",
  • "licenseStatus": "Terminated",
  • "deactivatedAt": "2026-05-19T11:05:07Z"
}

Download license report

Downloads the license report in disconnected mode (base64 encoded)

Responses

200

License report downloaded successfully

403

Operation not allowed in connected mode

500

Internal server error

get/license/report

API base path

/api/license/report

System Manager API

/license/report

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "report": "eyJyZXBvcnROYW1lIjoibXktcmVwb3J0IiwidGVsZW1ldHJ5UmVjb3JkcyI6W119"
}

Verify license report

Verifies a signed license report acknowledgment from F5 TEEM in disconnected mode

Request Body schema: application/json
manifest
required
string

Base64 encoded signed report acknowledgment from F5 TEEM

Responses

200

Report verification initiated successfully

400

Invalid request body

403

Operation not allowed in connected mode

500

Internal server error

put/license/report

API base path

/api/license/report

System Manager API

/license/report

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "manifest": "eyJzaWduZWRBY2siOiJ0ZXN0In0="
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "message": "Operation successful"
}

Get license entitlements

Retrieves license entitlements from llm sdk

Responses

200

License entitlements retrieved successfully

500

Internal server error

get/license/entitlements

API base path

/api/license/entitlements

System Manager API

/license/entitlements

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "entitlements": { },
  • "status": "success"
}

Device Management

AddDataCenter

Add a new data center to F5 Insights fleet.

Request Body schema: application/json

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.

Responses

200

Data center added successfully.

400

Validation error.

500

Internal server error.

post/device-management/data-centers

API base path

/api/device-management/data-centers

System Manager API

/device-management/data-centers

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "name": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": 0,
  • "message": "string",
  • "code": "string",
  • "category": "string",
  • "help": "string"
}

GetDataCenters

Retrieve all Data Centers.

Responses

200

List of all data centers.

400

Validation error.

500

Internal server error.

get/device-management/data-centers

API base path

/api/device-management/data-centers

System Manager API

/device-management/data-centers

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data_centers":
    [
    ]
}

DeleteDataCenter

Delete a specific data center by its ID.

path Parameters
id
required
string <uuid>

Unique identifier of the data center to delete.

Responses

200

Data center deleted successfully.

400

Validation error.

404

Data center not found.

409

Cannot delete data center with associated devices.

500

Internal server error.

delete/device-management/data-centers/{id}

API base path

/api/device-management/data-centers/{id}

System Manager API

/device-management/data-centers/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": 0,
  • "message": "string",
  • "code": "string",
  • "category": "string",
  • "help": "string"
}

GetDataCentersRegisteredDevices

Retrieve all data centers with their registered devices.

Responses

200

List of all data centers with their devices.

500

Internal server error.

get/device-management/data-centers/devices

API base path

/api/device-management/data-centers/devices

System Manager API

/device-management/data-centers/devices

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "data_centers":
    [
    ],
  • "total_data_centers": 0,
  • "total_devices": 0
}

SaveGlobalSettings

Save or update global settings for BIG-IP devices.

Request Body schema: application/json

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

Responses

200

Global settings saved successfully.

400

Validation error.

500

Internal server error.

post/device-management/global-settings

API base path

/api/device-management/global-settings

System Manager API

/device-management/global-settings

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "retention": "string",
  • "port": 1,
  • "collection_interval": 1,
  • "tls_enabled": false,
  • "ca": "string",
  • "modules":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": 0,
  • "message": "string",
  • "code": "string",
  • "category": "string",
  • "help": "string"
}

GetGlobalSettings

Retrieve current global settings.

Responses

200

Global settings fetched successfully.

get/device-management/global-settings

API base path

/api/device-management/global-settings

System Manager API

/device-management/global-settings

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "retention": "string",
  • "port": 1,
  • "collection_interval": 1,
  • "tls_enabled": false,
  • "ca": "string",
  • "modules":
    {
    }
}

AddTrustStore

certificate for TLS connections.

Request Body schema: application/json

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

Responses

201

Certificate uploaded successfully.

400

Validation error.

500

Internal server error.

post/device-management/trust-store

API base path

/api/device-management/trust-store

System Manager API

/device-management/trust-store

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "name": "string",
  • "description": "string",
  • "certificate_content": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "created_at": "2026-05-19T11:05:07Z"
}

GetTrustStores

Retrieve all certificates from trust store.

Responses

200

List of certificates.

500

Internal server error.

get/device-management/trust-store

API base path

/api/device-management/trust-store

System Manager API

/device-management/trust-store

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "trust_stores":
    [
    ]
}

GetTrustStore

Retrieve a specific certificate by ID from trust store.

path Parameters
id
required
string <uuid>

Certificate ID

Responses

200

Certificate details.

404

Certificate not found.

500

Internal server error.

get/device-management/trust-store/{id}

API base path

/api/device-management/trust-store/{id}

System Manager API

/device-management/trust-store/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "id": "string",
  • "name": "string",
  • "description": "string",
  • "certificate_content": "string",
  • "created_at": "2026-05-19T11:05:07Z",
  • "last_modified": "2026-05-19T11:05:07Z"
}

DeleteTrustStore

Delete a certificate from trust store.

path Parameters
id
required
string <uuid>

Certificate ID

Responses

200

Certificate deleted successfully.

404

Certificate not found.

409

Certificate is in use by devices.

500

Internal server error.

delete/device-management/trust-store/{id}

API base path

/api/device-management/trust-store/{id}

System Manager API

/device-management/trust-store/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": 0,
  • "message": "string",
  • "code": "string",
  • "category": "string",
  • "help": "string"
}

AddDevice

Onboard a BIG-IP device to F5 Insights fleet.

Request Body schema: application/json

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).

Responses

200

Device added successfully.

400

Validation error.

500

Internal server error.

post/device-management/devices

API base path

/api/device-management/devices

System Manager API

/device-management/devices

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "retention": "string",
  • "port": 1,
  • "collection_interval": 1,
  • "tls_enabled": false,
  • "ca": "string",
  • "modules":
    {
    },
  • "id": "string",
  • "alias_name": "string",
  • "description": "string",
  • "username": "string",
  • "password": "string",
  • "data_center": "string",
  • "endpoint": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": 0,
  • "message": "string",
  • "code": "string",
  • "category": "string",
  • "help": "string"
}

GetDevices

Retrieve all BIG-IP devices onboarded to F5 Insights with pagination and filtering support.

query Parameters
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)

Responses

200

List of BIG-IP devices with pagination metadata.

400

Validation error.

500

Internal server error.

get/device-management/devices

API base path

/api/device-management/devices

System Manager API

/device-management/devices

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "devices":
    [
    ],
  • "pagination":
    {
    }
}

UpdateDevice

Updates configuration of a BIG-IP device.

path Parameters
id
required
string

Unique identifier of the BIG-IP device to update.

Request Body schema: application/json

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).

Responses

200

Device updated successfully.

400

Validation error.

500

Internal server error.

put/device-management/devices/{id}

API base path

/api/device-management/devices/{id}

System Manager API

/device-management/devices/{id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "retention": "string",
  • "port": 1,
  • "collection_interval": 1,
  • "tls_enabled": false,
  • "ca": "string",
  • "modules":
    {
    },
  • "id": "string",
  • "alias_name": "string",
  • "description": "string",
  • "username": "string",
  • "password": "string",
  • "data_center": "string",
  • "endpoint": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status": 0,
  • "message": "string",
  • "code": "string",
  • "category": "string",
  • "help": "string"
}

PartialUpdateDevice

Partially updates configuration of a BIG-IP device. Only provided fields are updated.

path Parameters
id
required
string

Unique identifier of the BIG-IP device to update.

Request Body schema: application/json

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

Responses

200

Device partially updated successfully.

400

Validation error.

404

Device not found.

500

Internal server error.

patch/device-management/devices/{id}

API base path

/api/device-management/devices/{id}

System Manager API

/device-management/devices/{id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "retention": "string",
  • "port": 1,
  • "collection_interval": 1,
  • "tls_enabled": false,
  • "ca": "string",
  • "modules":
    {
    },
  • "id": "string",
  • "alias_name": "string",
  • "description": "string",
  • "username": "string",
  • "password": "string",
  • "data_center": "string",
  • "endpoint": "string",
  • "deviceName": "string"
}

GetDevice

Fetch details of a specific BIG-IP device.

path Parameters
id
required
string

Unique identifier of the BIG-IP device.

Responses

200

Device fetched successfully.

400

Validation error.

500

Internal server error.

get/device-management/devices/{id}

API base path

/api/device-management/devices/{id}

System Manager API

/device-management/devices/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "retention": "string",
  • "port": 1,
  • "collection_interval": 1,
  • "tls_enabled": false,
  • "ca": "string",
  • "modules":
    {
    },
  • "id": "string",
  • "alias_name": "string",
  • "description": "string",
  • "username": "string",
  • "password": "string",
  • "data_center": "string",
  • "endpoint": "string",
  • "deviceName": "string"
}

DeleteDevice

Delete specific BIG-IP device.

path Parameters
id
required
string

Unique identifier of the BIG-IP device.

Responses

200

Device deleted successfully.

400

Validation error.

500

Internal server error.

delete/device-management/devices/{id}

API base path

/api/device-management/devices/{id}

System Manager API

/device-management/devices/{id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "retention": "string",
  • "port": 1,
  • "collection_interval": 1,
  • "tls_enabled": false,
  • "ca": "string",
  • "modules":
    {
    },
  • "id": "string",
  • "alias_name": "string",
  • "description": "string",
  • "username": "string",
  • "password": "string",
  • "data_center": "string",
  • "endpoint": "string"
}

ValidateDeviceConnection

Validate connectivity from F5 Insights to a BIG-IP device using provided credentials.

Request Body schema: application/json

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).

Responses

200

Connection validation result.

400

Validation error.

500

Internal server error.

post/device-management/devices/connection/validate

API base path

/api/device-management/devices/connection/validate

System Manager API

/device-management/devices/connection/validate

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "retention": "string",
  • "port": 1,
  • "collection_interval": 1,
  • "tls_enabled": false,
  • "ca": "string",
  • "modules":
    {
    },
  • "id": "string",
  • "alias_name": "string",
  • "description": "string",
  • "username": "string",
  • "password": "string",
  • "data_center": "string",
  • "endpoint": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "reachable": true,
  • "authenticated": true,
  • "message": "string"
}

GetCurrentMigrationTask

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.

Responses

200

Migration task information retrieved successfully

404

No migration tasks found

500

Internal server error

get/device-management/devices/migrate-ast

API base path

/api/device-management/devices/migrate-ast

System Manager API

/device-management/devices/migrate-ast

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "task_id": "123e4567-e89b-12d3-a456-426614174000",
  • "status": "INIT",
  • "message": "Migration task created successfully. Use the task_id to query status."
}

StartMigrationTask

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.

Request Body schema: multipart/form-data

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)

Responses

202

Migration task created successfully. Use the returned task_id to query status.

400

Validation error in uploaded files.

409

A migration task is already in progress.

500

Internal server error.

post/device-management/devices/migrate-ast

API base path

/api/device-management/devices/migrate-ast

System Manager API

/device-management/devices/migrate-ast

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "task_id": "123e4567-e89b-12d3-a456-426614174000",
  • "status": "INIT",
  • "message": "Migration task created successfully. Use the task_id to query status."
}

GetMigrationStatus

Get the status of a device migration task including overall progress and individual device status.

path Parameters
task_id
required
string <uuid>

The task ID returned from the migration request

query Parameters
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)

Responses

200

Migration status retrieved successfully

404

Task not found

500

Internal server error

get/device-management/devices/migrate-ast/status/{task_id}

API base path

/api/device-management/devices/migrate-ast/status/{task_id}

System Manager API

/device-management/devices/migrate-ast/status/{task_id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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":
    [
    ]
}

GetDeviceProgress

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.

path Parameters
task_id
required
string <uuid>

The task ID returned from the migration request

query Parameters
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)

Responses

200

Device progress retrieved successfully

400

Invalid request parameters

404

Task not found

500

Internal server error

get/device-management/devices/migrate-ast/status/{task_id}/devices

API base path

/api/device-management/devices/migrate-ast/status/{task_id}/devices

System Manager API

/device-management/devices/migrate-ast/status/{task_id}/devices

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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":
    [
    ]
}

Get staging CA certificates for a migration task

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.

path Parameters
task_id
required
string <uuid>

The task ID returned from the migration request

query Parameters
page
integer >= 1
Default: 1

Page number for pagination (1-based).

size
integer >= 1

Number of items per page.

Responses

200

CA bundle list retrieved successfully

400

Invalid request parameters

404

Task not found

500

Internal server error

get/device-management/devices/migrate-ast/status/{task_id}/ca-bundles

API base path

/api/device-management/devices/migrate-ast/status/{task_id}/ca-bundles

System Manager API

/device-management/devices/migrate-ast/status/{task_id}/ca-bundles

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "task_id": "550e8400-e29b-41d4-a716-446655440000",
  • "page": 1,
  • "size": 20,
  • "total": 5,
  • "ca_bundles":
    [
    ]
}

CleanupMigrationTask

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.

path Parameters
task_id
required
string <uuid>

The task ID to clean up

query Parameters
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.

Responses

200

Cleanup completed successfully

404

Task not found

500

Internal server error

delete/device-management/devices/migrate-ast/cleanup/{task_id}

API base path

/api/device-management/devices/migrate-ast/cleanup/{task_id}

System Manager API

/device-management/devices/migrate-ast/cleanup/{task_id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "task_id": "123e4567-e89b-12d3-a456-426614174000",
  • "deleted_devices": 10,
  • "deleted_trust_stores": 5,
  • "message": "Successfully cleaned up migration task staging data"
}

RetryFailedMigrationDevices

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:

  • Task must exist and be a MIGRATION task
  • No other migration task can be currently running
  • Task must have at least one failed device

The retry process:

  1. Validates the task exists and is a migration task
  2. Checks no concurrent migration tasks are running
  3. Resets failed devices to PENDING status
  4. Resets task state to IN_PROGRESS
  5. Reprocesses only the failed devices through the validation workflow
path Parameters
task_id
required
string <uuid>

The task ID to retry failed devices for

Responses

202

Retry initiated successfully. Use the same task_id to query status.

400

No failed devices to retry

404

Task not found

409

A migration task is already running

500

Internal server error

post/device-management/devices/migrate-ast/retry/{task_id}

API base path

/api/device-management/devices/migrate-ast/retry/{task_id}

System Manager API

/device-management/devices/migrate-ast/retry/{task_id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "message": "Retry task initiated successfully",
  • "task_id": "123e4567-e89b-12d3-a456-426614174000"
}

Get a staging device by ID

Retrieve details of a specific staging device including its validation status, configuration, and error messages if any.

path Parameters
staging_device_id
required
string <uuid>

UUID of the staging device to retrieve

Responses

200

Staging device retrieved successfully

404

Staging device not found

500

Internal server error

get/device-management/devices/migrate-ast/staging-devices/{staging_device_id}

API base path

/api/device-management/devices/migrate-ast/staging-devices/{staging_device_id}

System Manager API

/device-management/devices/migrate-ast/staging-devices/{staging_device_id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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"
}

Update and commit a staging device

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.

path Parameters
staging_device_id
required
string <uuid>

UUID of the staging device to update

Request Body schema: application/json
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

Responses

200

Staging device updated and committed successfully

400

Device validation failed or invalid request

404

Staging device not found

500

Internal server error

patch/device-management/devices/migrate-ast/staging-devices/{staging_device_id}

API base path

/api/device-management/devices/migrate-ast/staging-devices/{staging_device_id}

System Manager API

/device-management/devices/migrate-ast/staging-devices/{staging_device_id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "message": "Staging device updated and committed successfully",
  • "staging_device_id": "string"
}

Update and commit a staging CA bundle

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.

path Parameters
staging_ca_id
required
string <uuid>

UUID of the staging CA bundle to update

Request Body schema: application/json
name
required
string <= 255 characters

Name of the certificate

description
string

Description of the certificate

certificate_content
required
string

PEM encoded certificate content

Responses

200

Staging CA bundle updated and committed successfully

400

Invalid certificate data

404

Staging CA bundle not found

500

Internal server error

patch/device-management/devices/migrate-ast/staging-ca-bundles/{staging_ca_id}

API base path

/api/device-management/devices/migrate-ast/staging-ca-bundles/{staging_ca_id}

System Manager API

/device-management/devices/migrate-ast/staging-ca-bundles/{staging_ca_id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "name": "string",
  • "description": "string",
  • "certificate_content": "string"
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "message": "Staging CA bundle updated and committed successfully",
  • "staging_ca_id": "string"
}

MigrateASTDevicesSync

Synchronous migration of BIG-IP devices from AST configuration files (legacy endpoint). For better experience with large migrations, use the async endpoint instead.

Request Body schema: multipart/form-data

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)

Responses

200

Migration completed with summary of results.

400

Validation error in uploaded files.

500

Internal server error.

post/device-management/devices/migrate-ast-sync

API base path

/api/device-management/devices/migrate-ast-sync

System Manager API

/device-management/devices/migrate-ast-sync

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "total": 10,
  • "successful": 8,
  • "failed": 2,
  • "results":
    [
    ]
}

BulkImportDevices

Import multiple BIG-IP devices to F5 Insights in a single operation.

Request Body schema: application/json

Array of devices to be imported.

devices
required
Array of objects (Device) non-empty

List of devices to import

Responses

200

Bulk import completed with summary of results.

400

Validation error.

500

Internal server error.

post/device-management/devices/bulk-import

API base path

/api/device-management/devices/bulk-import

System Manager API

/device-management/devices/bulk-import

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "devices":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "total": 10,
  • "successful": 8,
  • "failed": 2,
  • "results":
    [
    ]
}

DR-HA Management

Initialize HA cluster

Starts async task to configure Node1 as primary and Node2 as standby

Request Body schema: application/json
primary_node
required
object (PrimaryNodeConfig)
standby_node
required
object (StandbyNodeConfig)

Responses

202

HA initialization task created successfully

400

Invalid request body

409

HA already exists or active task exists

500

Internal server error

post/dr-ha/initialize

API base path

/api/dr-ha/initialize

System Manager API

/dr-ha/initialize

Request samples

Content type
application/json
Copy
Expand all Collapse all
{}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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"
}

Get HA task status

Retrieves the current status and progress of an HA initialization task

path Parameters
task_id
required
string <uuid>

Task ID (UUID)

Responses

200

Task status retrieved successfully

404

Task not found

get/dr-ha/tasks/{task_id}

API base path

/api/dr-ha/tasks/{task_id}

System Manager API

/dr-ha/tasks/{task_id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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":
    [
    ],
  • "started_at": "2026-01-30T10:00:05Z",
  • "completed_at": null,
  • "duration": null
}

Get HA cluster status

Retrieves the current status of the HA cluster including all nodes

Responses

200

Cluster status retrieved successfully

404

No HA cluster configured

get/dr-ha/status

API base path

/api/dr-ha/status

System Manager API

/dr-ha/status

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "cluster_id": "660e8400-e29b-41d4-a716-446655440001",
  • "cluster_name": "primary-standby-cluster",
  • "status": "active",
  • "site": "primary-site",
  • "nodes":
    [
    ],
  • "initialized_at": "2026-01-30T10:05:00Z",
  • "last_failover_at": null
}

Trigger manual failover

Initiates failover from current primary to standby node (promotes standby to primary)

Request Body schema: application/json
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)

Responses

202

Failover task created successfully

400

Invalid request body

404

No HA cluster configured

500

Internal server error

post/dr-ha/failover

API base path

/api/dr-ha/failover

System Manager API

/dr-ha/failover

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "force": false,
  • "timeout_seconds": 300
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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"
}

Trigger failback to convert old primary to standby

Reconfigures this node as standby to replicate from new primary

Request Body schema: application/json
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)

Responses

202

Failback task created successfully

400

Invalid request body

404

No HA cluster configured

500

Internal server error

post/dr-ha/failback

API base path

/api/dr-ha/failback

System Manager API

/dr-ha/failback

Request samples

Content type
application/json
Copy
Expand all Collapse all
{}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "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"
}