The Quantum API is extensible. Extensions serve several purposes:
They allow the introduction of new features in the API without requiring a version change;
They allow the introduction of vendor specific niche functionality
They act as a proving ground for experimental functionalities which might be included in a future version of the API.
Applications can programmatically
determine what extensions are available by performing
a GET on the /v1.0/extensions URI.
Note that this is a versioned request — that is,
an extension available in one API version may not be
available in another.
Example 3.7. Extensions Response: XML
<?xml version="1.0" encoding="UTF-8"?>
<extensions>
<extension
name="Cisco Port Profile"
namespace="http://docs.ciscocloud.com/api/ext/portprofile/v1.0"
alias="Cisco Port Profile"
updated="2011-07-23T13:25:27-06:00">
<description>Portprofile include QoS information</description>
</extension>
<extension
name="Cisco qos"
namespace="http://docs.ciscocloud.com/api/ext/qos/v1.0"
alias="Cisco qos"
updated="2011-07-25T13:25:27-06:00">
<description>qos include qos_name and qos_desc</description>
</extension>
</extensions>
Example 3.8. Extensions Response: JSON
{
"extensions": [
{
"name": "Cisco Port Profile",
"namespace": "http://docs.ciscocloud.com/api/ext/portprofile/v1.0",
"alias": "Cisco Port Profile",
"updated": "2011-07-23T13:25:27-06:00",
"description": "Portprofile include QoS information",
},
{
"name": "Cisco qos",
"namespace": "http://docs.ciscocloud.com/api/ext/qos/v1.0",
"alias": "Cisco qos",
"updated": "2011-07-25T13:25:27-06:00",
"description": "qos include qos_name and qos_desc",
},
]
}
Extensions may also be queried individually by their unique alias by performing
a GET on the /v1.0/extensions/alias_name. This provides the simplest
method of checking if an extension is available as an unavailable extension will issue an
itemNotFound (404) response.
![]() | Note |
|---|---|
Existing core API resources can be extended with new actions or extra data in request/response of existing actions. Further new resources can also be added as extensions. Extensions usually have vendor specific tags that prevent clash with other extensions. Availability of an extension will vary with deployments and the specific plugin in use. |
![]() | Important |
|---|---|
Applications should be prepared to ignore response data that contains extension elements. Applications should also verify that an extension is available before submitting an extended request. |

![[Note]](../common/images/admon/note.png)
![[Important]](../common/images/admon/important.png)
