F5 Networks Virtual Servers API

Manage virtual servers that direct client traffic to appropriate server pools based on configured rules and profiles.

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/f5-networks-virtual-servers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

Free tier, no email required.

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

OpenAPI Specification

f5-networks-virtual-servers-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: F5 BIG-IP iControl REST Nodes Virtual Servers API
  description: The iControl REST API provides programmatic access to manage and configure F5 BIG-IP devices. It enables automation of Local Traffic Manager (LTM) resources including virtual servers, pools, nodes, pool members, and profiles for application delivery, load balancing, and network management.
  version: 15.1.0
  contact:
    name: F5 Support
    email: support@f5.com
    url: https://www.f5.com/company/contact/regional-offices
  license:
    name: Proprietary
    url: https://www.f5.com/company/policies/terms-of-use
  x-logo:
    url: https://www.f5.com/content/dam/f5-com/global-assets/images/f5-logo.svg
servers:
- url: https://{bigip_host}/mgmt/tm
  description: BIG-IP Management Interface
  variables:
    bigip_host:
      default: 192.168.1.245
      description: Hostname or IP address of the BIG-IP device
security:
- basicAuth: []
- tokenAuth: []
tags:
- name: Virtual Servers
  description: Manage virtual servers that direct client traffic to appropriate server pools based on configured rules and profiles.
  externalDocs:
    url: https://clouddocs.f5.com/api/icontrol-rest/APIRef_tm_ltm_virtual.html
paths:
  /ltm/virtual:
    get:
      operationId: listVirtualServers
      summary: List All Virtual Servers
      description: Returns a collection of all virtual server resources configured on the BIG-IP system.
      tags:
      - Virtual Servers
      parameters:
      - $ref: '#/components/parameters/SelectParam'
      - $ref: '#/components/parameters/FilterParam'
      - $ref: '#/components/parameters/TopParam'
      - $ref: '#/components/parameters/SkipParam'
      - $ref: '#/components/parameters/ExpandSubcollectionsParam'
      responses:
        '200':
          description: Successful retrieval of virtual server collection.
          content:
            application/json:
              schema:
                type: object
                properties:
                  kind:
                    type: string
                    example: tm:ltm:virtual:virtualcollectionstate
                  selfLink:
                    type: string
                    format: uri
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/VirtualServer'
              examples:
                Listvirtualservers200Example:
                  summary: Default listVirtualServers 200 response
                  x-microcks-default: true
                  value:
                    kind: example_value
                    selfLink: https://www.example.com
                    items:
                    - kind: example_value
                      name: Example Title
                      fullPath: example_value
                      generation: 10
                      selfLink: https://www.example.com
                      addressStatus: 'yes'
                      autoLasthop: default
                      cmpEnabled: 'yes'
                      connectionLimit: 10
                      description: A sample description.
                      destination: example_value
                      disabled: true
                      enabled: true
                      fallbackPersistence: example_value
                      gtmScore: 10
                      ipProtocol: tcp
                      mask: example_value
                      mirror: enabled
                      nat64: enabled
                      partition: example_value
                      persist:
                      - {}
                      pool: example_value
                      profiles:
                      - {}
                      rateLimit: example_value
                      rateLimitMode: object
                      rules:
                      - {}
                      source: example_value
                      sourcePort: preserve
                      synCookieStatus: not-activated
                      translateAddress: enabled
                      translatePort: enabled
                      vlansEnabled: true
                      vlansDisabled: true
                      vlans:
                      - {}
                      vsIndex: 10
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createVirtualServer
      summary: Create a Virtual Server
      description: Creates a new virtual server resource on the BIG-IP system. At minimum, a name and destination address:port must be specified.
      tags:
      - Virtual Servers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VirtualServerCreate'
            examples:
              CreatevirtualserverRequestExample:
                summary: Default createVirtualServer request
                x-microcks-default: true
                value:
                  name: Example Title
                  partition: example_value
                  destination: example_value
                  description: A sample description.
                  ipProtocol: tcp
                  mask: example_value
                  pool: example_value
                  profiles:
                  - name: Example Title
                    context: all
                  persist:
                  - name: Example Title
                    tmDefault: 'yes'
                  source: example_value
                  sourcePort: preserve
                  translateAddress: enabled
                  translatePort: enabled
                  connectionLimit: 10
                  rules:
                  - example_value
                  vlans:
                  - example_value
                  vlansEnabled: true
                  vlansDisabled: true
      responses:
        '200':
          description: Virtual server created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualServer'
              examples:
                Createvirtualserver200Example:
                  summary: Default createVirtualServer 200 response
                  x-microcks-default: true
                  value:
                    kind: example_value
                    name: Example Title
                    fullPath: example_value
                    generation: 10
                    selfLink: https://www.example.com
                    addressStatus: 'yes'
                    autoLasthop: default
                    cmpEnabled: 'yes'
                    connectionLimit: 10
                    description: A sample description.
                    destination: example_value
                    disabled: true
                    enabled: true
                    fallbackPersistence: example_value
                    gtmScore: 10
                    ipProtocol: tcp
                    mask: example_value
                    mirror: enabled
                    nat64: enabled
                    partition: example_value
                    persist:
                    - name: Example Title
                      tmDefault: 'yes'
                    pool: example_value
                    profiles:
                    - name: Example Title
                      context: all
                      fullPath: example_value
                    rateLimit: example_value
                    rateLimitMode: object
                    rules:
                    - example_value
                    source: example_value
                    sourcePort: preserve
                    synCookieStatus: not-activated
                    translateAddress: enabled
                    translatePort: enabled
                    vlansEnabled: true
                    vlansDisabled: true
                    vlans:
                    - example_value
                    vsIndex: 10
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /ltm/virtual/{virtualName}:
    parameters:
    - $ref: '#/components/parameters/VirtualNameParam'
    get:
      operationId: getVirtualServer
      summary: Get a Virtual Server
      description: Returns a single virtual server resource identified by name.
      tags:
      - Virtual Servers
      parameters:
      - $ref: '#/components/parameters/ExpandSubcollectionsParam'
      responses:
        '200':
          description: Successful retrieval of the virtual server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualServer'
              examples:
                Getvirtualserver200Example:
                  summary: Default getVirtualServer 200 response
                  x-microcks-default: true
                  value:
                    kind: example_value
                    name: Example Title
                    fullPath: example_value
                    generation: 10
                    selfLink: https://www.example.com
                    addressStatus: 'yes'
                    autoLasthop: default
                    cmpEnabled: 'yes'
                    connectionLimit: 10
                    description: A sample description.
                    destination: example_value
                    disabled: true
                    enabled: true
                    fallbackPersistence: example_value
                    gtmScore: 10
                    ipProtocol: tcp
                    mask: example_value
                    mirror: enabled
                    nat64: enabled
                    partition: example_value
                    persist:
                    - name: Example Title
                      tmDefault: 'yes'
                    pool: example_value
                    profiles:
                    - name: Example Title
                      context: all
                      fullPath: example_value
                    rateLimit: example_value
                    rateLimitMode: object
                    rules:
                    - example_value
                    source: example_value
                    sourcePort: preserve
                    synCookieStatus: not-activated
                    translateAddress: enabled
                    translatePort: enabled
                    vlansEnabled: true
                    vlansDisabled: true
                    vlans:
                    - example_value
                    vsIndex: 10
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: updateVirtualServer
      summary: Update a Virtual Server
      description: Replaces the entire virtual server resource. All writable properties must be included in the request body.
      tags:
      - Virtual Servers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VirtualServerUpdate'
            examples:
              UpdatevirtualserverRequestExample:
                summary: Default updateVirtualServer request
                x-microcks-default: true
                value:
                  description: A sample description.
                  destination: example_value
                  ipProtocol: tcp
                  mask: example_value
                  pool: example_value
                  profiles:
                  - name: Example Title
                    context: all
                  persist:
                  - name: Example Title
                    tmDefault: example_value
                  source: example_value
                  sourcePort: preserve
                  translateAddress: enabled
                  translatePort: enabled
                  connectionLimit: 10
                  enabled: true
                  disabled: true
                  mirror: enabled
                  rateLimit: example_value
                  rules:
                  - example_value
                  vlans:
                  - example_value
                  vlansEnabled: true
                  vlansDisabled: true
                  fallbackPersistence: example_value
      responses:
        '200':
          description: Virtual server updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualServer'
              examples:
                Updatevirtualserver200Example:
                  summary: Default updateVirtualServer 200 response
                  x-microcks-default: true
                  value:
                    kind: example_value
                    name: Example Title
                    fullPath: example_value
                    generation: 10
                    selfLink: https://www.example.com
                    addressStatus: 'yes'
                    autoLasthop: default
                    cmpEnabled: 'yes'
                    connectionLimit: 10
                    description: A sample description.
                    destination: example_value
                    disabled: true
                    enabled: true
                    fallbackPersistence: example_value
                    gtmScore: 10
                    ipProtocol: tcp
                    mask: example_value
                    mirror: enabled
                    nat64: enabled
                    partition: example_value
                    persist:
                    - name: Example Title
                      tmDefault: 'yes'
                    pool: example_value
                    profiles:
                    - name: Example Title
                      context: all
                      fullPath: example_value
                    rateLimit: example_value
                    rateLimitMode: object
                    rules:
                    - example_value
                    source: example_value
                    sourcePort: preserve
                    synCookieStatus: not-activated
                    translateAddress: enabled
                    translatePort: enabled
                    vlansEnabled: true
                    vlansDisabled: true
                    vlans:
                    - example_value
                    vsIndex: 10
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      operationId: patchVirtualServer
      summary: Patch a Virtual Server
      description: Partially updates a virtual server resource. Only specified properties are modified.
      tags:
      - Virtual Servers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VirtualServerUpdate'
            examples:
              PatchvirtualserverRequestExample:
                summary: Default patchVirtualServer request
                x-microcks-default: true
                value:
                  description: A sample description.
                  destination: example_value
                  ipProtocol: tcp
                  mask: example_value
                  pool: example_value
                  profiles:
                  - name: Example Title
                    context: all
                  persist:
                  - name: Example Title
                    tmDefault: example_value
                  source: example_value
                  sourcePort: preserve
                  translateAddress: enabled
                  translatePort: enabled
                  connectionLimit: 10
                  enabled: true
                  disabled: true
                  mirror: enabled
                  rateLimit: example_value
                  rules:
                  - example_value
                  vlans:
                  - example_value
                  vlansEnabled: true
                  vlansDisabled: true
                  fallbackPersistence: example_value
      responses:
        '200':
          description: Virtual server patched successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualServer'
              examples:
                Patchvirtualserver200Example:
                  summary: Default patchVirtualServer 200 response
                  x-microcks-default: true
                  value:
                    kind: example_value
                    name: Example Title
                    fullPath: example_value
                    generation: 10
                    selfLink: https://www.example.com
                    addressStatus: 'yes'
                    autoLasthop: default
                    cmpEnabled: 'yes'
                    connectionLimit: 10
                    description: A sample description.
                    destination: example_value
                    disabled: true
                    enabled: true
                    fallbackPersistence: example_value
                    gtmScore: 10
                    ipProtocol: tcp
                    mask: example_value
                    mirror: enabled
                    nat64: enabled
                    partition: example_value
                    persist:
                    - name: Example Title
                      tmDefault: 'yes'
                    pool: example_value
                    profiles:
                    - name: Example Title
                      context: all
                      fullPath: example_value
                    rateLimit: example_value
                    rateLimitMode: object
                    rules:
                    - example_value
                    source: example_value
                    sourcePort: preserve
                    synCookieStatus: not-activated
                    translateAddress: enabled
                    translatePort: enabled
                    vlansEnabled: true
                    vlansDisabled: true
                    vlans:
                    - example_value
                    vsIndex: 10
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteVirtualServer
      summary: Delete a Virtual Server
      description: Removes a virtual server resource from the BIG-IP system. Active connections will be terminated.
      tags:
      - Virtual Servers
      responses:
        '200':
          description: Virtual server deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    VirtualServer:
      type: object
      description: A virtual server resource that directs client traffic to a pool of backend servers based on an IP address and port combination.
      properties:
        kind:
          type: string
          description: Resource type identifier.
          example: tm:ltm:virtual:virtualstate
          readOnly: true
        name:
          type: string
          description: Name of the virtual server resource.
          example: my_virtual_server
        fullPath:
          type: string
          description: Full path including partition.
          example: /Common/my_virtual_server
          readOnly: true
        generation:
          type: integer
          description: Configuration generation counter.
          readOnly: true
          example: 10
        selfLink:
          type: string
          format: uri
          description: Self-referencing URI for this resource.
          readOnly: true
          example: https://www.example.com
        addressStatus:
          type: string
          description: Whether the virtual contributes to the operational status of the associated virtual address.
          enum:
          - 'yes'
          - 'no'
          default: 'yes'
          example: 'yes'
        autoLasthop:
          type: string
          description: Automatic last hop setting for return traffic routing.
          enum:
          - default
          - enabled
          - disabled
          default: default
          example: default
        cmpEnabled:
          type: string
          description: Whether Clustered Multi-Processing (CMP) acceleration is enabled.
          enum:
          - 'yes'
          - 'no'
          default: 'yes'
          example: 'yes'
        connectionLimit:
          type: integer
          description: Maximum number of concurrent connections allowed. A value of 0 means unlimited.
          minimum: 0
          default: 0
          example: 0
        description:
          type: string
          description: User-defined description of the virtual server.
          example: Production web virtual server
        destination:
          type: string
          description: Destination IP address and service port in the format /partition/address:port or /partition/address.port.
          example: /Common/10.0.0.100:80
        disabled:
          type: boolean
          description: When true, the virtual server does not accept new connections.
          example: true
        enabled:
          type: boolean
          description: When true, the virtual server accepts and processes traffic.
          example: true
        fallbackPersistence:
          type: string
          description: Persistence profile to use when the primary persistence method fails.
          example: /Common/source_addr
        gtmScore:
          type: integer
          description: Score value used by Global Traffic Manager for load balancing decisions.
          default: 0
          example: 10
        ipProtocol:
          type: string
          description: IP protocol for the virtual server.
          enum:
          - tcp
          - udp
          - sctp
          - any
          example: tcp
        mask:
          type: string
          description: Network mask for the destination address. Use 255.255.255.255 for host-specific virtual servers.
          example: 255.255.255.255
        mirror:
          type: string
          description: Whether connection and persistence mirroring is enabled for high availability failover.
          enum:
          - enabled
          - disabled
          default: disabled
          example: enabled
        nat64:
          type: string
          description: Whether NAT64 translation is enabled.
          enum:
          - enabled
          - disabled
          default: disabled
          example: enabled
        partition:
          type: string
          description: Administrative partition containing this resource.
          default: Common
          example: Common
        persist:
          type: array
          description: Persistence profiles applied to the virtual server.
          items:
            type: object
            properties:
              name:
                type: string
                example: cookie
              tmDefault:
                type: string
                enum:
                - 'yes'
                - 'no'
          example: []
        pool:
          type: string
          description: Default pool for directing traffic. Specified as a full path (e.g., /Common/my_pool).
          example: /Common/my_pool
        profiles:
          type: array
          description: Profiles applied to the virtual server.
          items:
            type: object
            properties:
              name:
                type: string
                example: http
              context:
                type: string
                enum:
                - all
                - clientside
                - serverside
                example: all
              fullPath:
                type: string
                example: /Common/http
          example: []
        rateLimit:
          type: string
          description: Maximum number of connections per second. A value of disabled or 0 means no limit.
          default: disabled
          example: example_value
        rateLimitMode:
          type: string
          description: Scope of rate limiting.
          enum:
          - object
          - object-source
          - object-destination
          - object-source-destination
          default: object
          example: object
        rules:
          type: array
          description: iRules applied to the virtual server.
          items:
            type: string
          example:
          - /Common/my_irule
        source:
          type: string
          description: Source address filter. Only connections from this network are accepted.
          default: 0.0.0.0/0
          example: 0.0.0.0/0
        sourcePort:
          type: string
          description: Source port translation behavior.
          enum:
          - preserve
          - preserve-strict
          - change
          default: preserve
          example: preserve
        synCookieStatus:
          type: string
          description: Current SYN Cookie protection status.
          readOnly: true
          enum:
          - not-activated
          - activated
          example: not-activated
        translateAddress:
          type: string
          description: Whether address translation is enabled.
          enum:
          - enabled
          - disabled
          default: enabled
          example: enabled
        translatePort:
          type: string
          description: Whether port translation is enabled.
          enum:
          - enabled
          - disabled
          default: enabled
          example: enabled
        vlansEnabled:
          type: boolean
          description: Whether VLAN filtering is enabled.
          example: true
        vlansDisabled:
          type: boolean
          description: Whether the virtual server is disabled on listed VLANs.
          example: true
        vlans:
          type: array
          description: List of VLANs on which the virtual server is enabled or disabled.
          items:
            type: string
          example:
          - /Common/external
        vsIndex:
          type: integer
          description: System-assigned index for the virtual server.
          readOnly: true
          example: 10
    VirtualServerCreate:
      type: object
      description: Request body for creating a new virtual server.
      required:
      - name
      - destination
      properties:
        name:
          type: string
          description: Name of the virtual server.
          example: my_virtual_server
        partition:
          type: string
          description: Administrative partition.
          default: Common
          example: example_value
        destination:
          type: string
          description: Destination address and port in /partition/address:port format.
          example: /Common/10.0.0.100:80
        description:
          type: string
          description: User-defined description.
          example: A sample description.
        ipProtocol:
          type: string
          description: IP protocol.
          enum:
          - tcp
          - udp
          - sctp
          - any
          example: tcp
        mask:
          type: string
          description: Destination network mask.
          example: 255.255.255.255
        pool:
          type: string
          description: Default pool full path.
          example: /Common/my_pool
        profiles:
          type: array
          description: Profiles to apply.
          items:
            type: object
            properties:
              name:
                type: string
              context:
                type: string
                enum:
                - all
                - clientside
                - serverside
          example: []
        persist:
          type: array
          description: Persistence profiles to apply.
          items:
            type: object
            properties:
              name:
                type: string
              tmDefault:
                type: string
                enum:
                - 'yes'
                - 'no'
          example: []
        source:
          type: string
          description: Source address filter.
          default: 0.0.0.0/0
          example: example_value
        sourcePort:
          type: string
          description: Source port translation behavior.
          enum:
          - preserve
          - preserve-strict
          - change
          example: preserve
        translateAddress:
          type: string
          enum:
          - enabled
          - disabled
          example: enabled
        translatePort:
          type: string
          enum:
          - enabled
          - disabled
          example: enabled
        connectionLimit:
          type: integer
          minimum: 0
          example: 10
        rules:
          type: array
          items:
            type: string
          example: []
        vlans:
          type: array
          items:
            type: string
          example: []
        vlansEnabled:
          type: boolean
          example: true
        vlansDisabled:
          type: boolean
          example: true
    ErrorResponse:
      type: object
      description: Standard error response from the iControl REST API.
      properties:
        code:
          type: integer
          description: HTTP status code.
          example: 400
        message:
          type: string
          description: Error message describing what went wrong.
          example: The requested Pool (/Common/my_pool) was not found.
        errorStack:
          type: array
          description: Stack trace for debugging (when available).
          items:
            type: string
          example: []
        apiError:
          type: integer
          description: API-specific error code.
          example: 10
    VirtualServerUpdate:
      type: object
      description: Request body for updating a virtual server.
      properties:
        description:
          type: string
          example: A sample description.
        destination:
          type: string
          example: example_value
        ipProtocol:
          type: string
          enum:
          - tcp
          - udp
          - sctp
          - any
          example: tcp
        mask:
          type: string
          example: example_value
        pool:
          type: string
          example: example_value
        profiles:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              context:
                type: string
                enum:
                - all
                - clientside
                - serverside
          example: []
        persist:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              tmDefault:
                type: string
          example: []
        source:
          type: string
          example: example_value
        sourcePort:
          type: string
          enum:
          - preserve
          - preserve-strict
          - change
          example: preserve
        translateAddress:
          type: string
          enum:
          - enabled
          - disabled
          example: enabled
        translat

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/f5-networks/refs/heads/main/openapi/f5-networks-virtual-servers-api-openapi.yml