F5

F5 BIG-IP iControl REST (Mgmt)

A partial contract for the BIG-IP iControl REST management tree — 10 paths under /mgmt/tm/ and /mgmt/shared/ covering token login, virtual servers, pools, pool members, nodes, HTTP profiles and system version. iControl REST addresses the whole TMSH-addressable configuration tree, so this covers a small fraction of the real surface; F5 publishes no complete OpenAPI for it.

Operations 21

POST /mgmt/shared/authn/login Obtain an authentication token #
GET /mgmt/tm/ltm/virtual List virtual servers #
POST /mgmt/tm/ltm/virtual Create a virtual server #
GET /mgmt/tm/ltm/virtual/{name} Get a virtual server #
PUT /mgmt/tm/ltm/virtual/{name} Replace a virtual server #
PATCH /mgmt/tm/ltm/virtual/{name} Partially update a virtual server #
DELETE /mgmt/tm/ltm/virtual/{name} Delete a virtual server #
GET /mgmt/tm/ltm/pool List pools #
POST /mgmt/tm/ltm/pool Create a pool #
GET /mgmt/tm/ltm/pool/{name} Get a pool #
PUT /mgmt/tm/ltm/pool/{name} Replace a pool #
PATCH /mgmt/tm/ltm/pool/{name} Partially update a pool #
DELETE /mgmt/tm/ltm/pool/{name} Delete a pool #
GET /mgmt/tm/ltm/pool/{name}/members List members of a pool #
POST /mgmt/tm/ltm/pool/{name}/members Add a member to a pool #
GET /mgmt/tm/ltm/node List nodes #
POST /mgmt/tm/ltm/node Create a node #
GET /mgmt/tm/ltm/node/{name} Get a node #
DELETE /mgmt/tm/ltm/node/{name} Delete a node #
GET /mgmt/tm/ltm/profile/http List HTTP profiles #
GET /mgmt/tm/sys/version Get system software version #

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-mgmt-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

f5-mgmt-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: F5 BIG-IP iControl REST Mgmt API
  description: 'iControl REST is the JSON/HTTP management interface for F5 BIG-IP

    devices. It exposes the BIG-IP configuration tree under the

    /mgmt/tm/ namespace so any TMSH-addressable object (LTM, GTM, net,

    security, sys, etc.) can be created, retrieved, updated, and deleted

    over HTTPS. Authentication uses HTTP Basic over TLS or a token

    obtained from /mgmt/shared/authn/login.

    '
  version: 1.0.0
  contact:
    name: F5 CloudDocs
    url: https://clouddocs.f5.com/api/icontrol-rest/
servers:
- url: https://{bigip}
  description: BIG-IP management address
  variables:
    bigip:
      default: bigip.example.com
      description: Hostname or management IP of the BIG-IP device
security:
- Basic: []
- Token: []
tags:
- name: Mgmt
paths:
  /mgmt/shared/authn/login:
    post:
      summary: Obtain an authentication token
      operationId: login
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - username
              - password
              - loginProviderName
              properties:
                username:
                  type: string
                password:
                  type: string
                loginProviderName:
                  type: string
                  default: tmos
      responses:
        '200':
          description: Token issued
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: object
                    properties:
                      token:
                        type: string
                      timeout:
                        type: integer
      tags:
      - Mgmt
  /mgmt/tm/ltm/virtual:
    get:
      summary: List virtual servers
      operationId: listVirtuals
      responses:
        '200':
          description: Virtual server collection
      tags:
      - Mgmt
    post:
      summary: Create a virtual server
      operationId: createVirtual
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Virtual'
      responses:
        '200':
          description: Virtual created
      tags:
      - Mgmt
  /mgmt/tm/ltm/virtual/{name}:
    parameters:
    - $ref: '#/components/parameters/ObjectName'
    get:
      summary: Get a virtual server
      operationId: getVirtual
      responses:
        '200':
          description: Virtual
      tags:
      - Mgmt
    put:
      summary: Replace a virtual server
      operationId: replaceVirtual
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Virtual'
      responses:
        '200':
          description: Replaced
      tags:
      - Mgmt
    patch:
      summary: Partially update a virtual server
      operationId: patchVirtual
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Updated
      tags:
      - Mgmt
    delete:
      summary: Delete a virtual server
      operationId: deleteVirtual
      responses:
        '200':
          description: Deleted
      tags:
      - Mgmt
  /mgmt/tm/ltm/pool:
    get:
      summary: List pools
      operationId: listPools
      responses:
        '200':
          description: Pool collection
      tags:
      - Mgmt
    post:
      summary: Create a pool
      operationId: createPool
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Pool'
      responses:
        '200':
          description: Pool created
      tags:
      - Mgmt
  /mgmt/tm/ltm/pool/{name}:
    parameters:
    - $ref: '#/components/parameters/ObjectName'
    get:
      summary: Get a pool
      operationId: getPool
      responses:
        '200':
          description: Pool
      tags:
      - Mgmt
    put:
      summary: Replace a pool
      operationId: replacePool
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Pool'
      responses:
        '200':
          description: Replaced
      tags:
      - Mgmt
    patch:
      summary: Partially update a pool
      operationId: patchPool
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Updated
      tags:
      - Mgmt
    delete:
      summary: Delete a pool
      operationId: deletePool
      responses:
        '200':
          description: Deleted
      tags:
      - Mgmt
  /mgmt/tm/ltm/pool/{name}/members:
    parameters:
    - $ref: '#/components/parameters/ObjectName'
    get:
      summary: List members of a pool
      operationId: listPoolMembers
      responses:
        '200':
          description: Member collection
      tags:
      - Mgmt
    post:
      summary: Add a member to a pool
      operationId: addPoolMember
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Member added
      tags:
      - Mgmt
  /mgmt/tm/ltm/node:
    get:
      summary: List nodes
      operationId: listNodes
      responses:
        '200':
          description: Node collection
      tags:
      - Mgmt
    post:
      summary: Create a node
      operationId: createNode
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Node created
      tags:
      - Mgmt
  /mgmt/tm/ltm/node/{name}:
    parameters:
    - $ref: '#/components/parameters/ObjectName'
    get:
      summary: Get a node
      operationId: getNode
      responses:
        '200':
          description: Node
      tags:
      - Mgmt
    delete:
      summary: Delete a node
      operationId: deleteNode
      responses:
        '200':
          description: Deleted
      tags:
      - Mgmt
  /mgmt/tm/ltm/profile/http:
    get:
      summary: List HTTP profiles
      operationId: listHttpProfiles
      responses:
        '200':
          description: Profile collection
      tags:
      - Mgmt
  /mgmt/tm/sys/version:
    get:
      summary: Get system software version
      operationId: getSystemVersion
      responses:
        '200':
          description: Version info
      tags:
      - Mgmt
components:
  schemas:
    Virtual:
      type: object
      properties:
        name:
          type: string
        partition:
          type: string
          default: Common
        destination:
          type: string
          description: address:port, e.g. 10.0.0.1:80
        ipProtocol:
          type: string
          default: tcp
        pool:
          type: string
        profiles:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              context:
                type: string
    Pool:
      type: object
      properties:
        name:
          type: string
        partition:
          type: string
          default: Common
        loadBalancingMode:
          type: string
          default: round-robin
        monitor:
          type: string
        members:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              address:
                type: string
  parameters:
    ObjectName:
      name: name
      in: path
      required: true
      schema:
        type: string
      description: 'Object name. Use the tilde-partition-tilde-name notation when

        addressing objects in non-Common partitions, e.g. ~Common~http.

        '
  securitySchemes:
    Basic:
      type: http
      scheme: basic
      description: HTTP Basic auth using a BIG-IP administrative user.
    Token:
      type: apiKey
      in: header
      name: X-F5-Auth-Token
      description: Token obtained from /mgmt/shared/authn/login.