BIG-IP API vs BIG-IQ API

The majority of the F5 iControl REST API functionalities are the same for both BIG-IP and BIG-IQ.
However, some major differences exist, so BIGREST treats BIG-IP and BIG-IQ devices differently.
For BIG-IP use the class BIGIP, for BIG-IQ use the class BIGIQ.

BIG-IP

TOC

When using BIGREST for a BIG-IP device, the simplest way to find out the HTTP path you need is to use the TOC.

To access TOC:

https://<hostname or IP>/mgmt/toc

API Discovery

If you query the root HTTP path of the API, it will show you all HTTP paths available.
Example:
GET https://<hostname or IP>/mgmt/tm
You can also query an HTTP path to see the next paths available.
GET https://<hostname or IP>/mgmt/tm/ltm

See the documentation section for a full list of HTTP paths.

API

BIG-IP API use is simpler than BIG-IQ API.
Majority of the HTTP paths starts with /mgmt/tm/.
There are also some HTTP paths that I guess were create to be used by BIG-IQ when managing a BIG-IP device.
Those HTTP paths start with /mgmt/cm/.

HTTP paths for functionality that is specific to the iControl REST API start with /mgmt/shared/.

The API is similar to tmsh commands.
If you want to list all virtual servers using tmsh you do:
list ltm virtual

If you want to list all virtual servers using the API, you do:

GET https://<hostname or IP>/mgmt/tm/ltm/virtual

If you want to list a single virtual server using tmsh you do:

list ltm virtual <virtual server name>

If you want to list a single virtual server using the API you do:

GET https://<hostname or IP>/mgmt/tm/ltm/virtual/<virtual server name>

Documentation

iControl REST User Guide provides a good explanation about the API:
At the time I am writing this documentation, 14.1.0 is the latest version for this guide, but 15.1.0 is the latest BIG-IP version.
This askf5 solution provides many examples:

BIG-IQ

TOC

BIG-IQ does not have TOC.

API Discovery

If you query the root HTTP path of the API, it will show you all HTTP paths available.
Example:
GET https://<hostname or IP>/mgmt/cm
Unfortunately, BIG-IQ does not implement next HTTP paths for all paths, so the following does not work in BIG-IQ.
GET https://<hostname or IP>/mgmt/cm/adc-core/working-config/ltm

See the documentation section for a full list of HTTP paths.

API

A BIG-IQ device provides a subset of the BIG-IP functionality, plus functionality that is specific to BIG-IQ.
For example, you can list the self IPs in both BIG-IQ and BIG-IP using the following tmsh command:
list net self
This means that the majority of the HTTP path you use in the BIG-IP API for the device itself will also work with BIG-IQ.
Those HTTP paths will start with /mgmt/tm/.

HTTP paths to work with BIG-IQ functionalities start with /mgmt/cm/.

HTTP paths for functionality that is specific to the iControl REST API start with /mgmt/shared/

The API is similar to tmsh commands.
However, BIG-IQ only has tmsh commands that are specific to the BIG-IQ itself.
If you want to list all virtual servers using the API, you do:
GET https://<hostname or IP>/mgmt/cm/adc-core/working-config/ltm/virtual
BIG-IQ is a very new product compared with BIG-IP, however, it had many major changes since it was created.
The adc-core name is the same as LTM, and I assume it is a legacy from the time BIG-IQ had separated products.
Instead of using the object name as the key to get the object, BIG-IQ API uses IDs.
If you want to list a single virtual server using the API you do:
GET https://<hostname or IP>/mgmt/cm/adc-core/working-config/ltm/virtual/<ID>
This means you need to know the ID, or you have to get the ID before.
The SDK has a function called “id” to help with that.
BIG-IQ API also requires you to provide a link to an object in some cases.
For example, if you create a virtual server, you have to provide a link to device object.
The link is sent as part of the payload and means the virtual server will be linked to that device.
The SDK has a function called “link” to help with that.

Documentation

BIG-IQ API does not have a user guide like BIG-IP, but the API Reference provides similar content.
List of HTTP paths for /mgmt/tm in 7.1.0:
BIG-IQ does not display the full list, so use BIG-IP list below as reference: