The API described here is a draft; there will very likely be some differences in the finalized implementation. This page will reflect the changes when they come. 

The following is the summary of the ONOS REST API.

Please note that the all endpoints need to be prefixed with: http://<controller IP>:8181/onos/v1/

Example: if ONOS is running on your local machine.

The entries in bold are currently implemented.


GET /devicesLists all infrastructure devices.
GET /devices/{deviceId}Lists details of a specific infrastructure device.
GET /devices/{deviceId}/portsLists ports of a specific infrastructure device.
POST /devicesCreates a new infrastructure device into inventory (future).
PUT /devices/{deviceId}Updates a device - attributes, availability, mastership.
DELETE /devices/{deviceId}Deletes an infrastructure device from inventory.


GET /linksLists all infrastructure links.
GET /links?{device=deviceId}{port=portNumber}{direction=[ALL,INGRESS,EGRESS]}Lists details of a link.
POST /linksCreates a new infrastructure link into inventory (future).
PUT /links/{linkId}Updates a link - attributes, e.g. type.
DELETE /link/{linkId}Deletes an infrastructure link from inventory.


GET /hostsLists all end-stations hosts.
GET /hosts/{hostId}Lists details of a specific end-station host specified by the host ID.
GET /hosts/{mac}/{vlan}Lists details of a specific end-station host specified by the host MAC address and VLan Id.
POST /hostsCreates a new end-station host into inventory (future).
PUT /hosts/{hostId}Updates an end-station host - attributes, e.g. IP, location.
DELETE /hosts/{hostId}Deletes an end-station host from inventory.


GET /topologyGets overview of the current topology.
GET /topology/clustersGets list of topology cluster overviews.
GET /topology/clusters/{clusterId}Gets overview of a specific topology cluster.
GET /topology/clusters/{clusterId}/devicesGets infrastructure devices that belong to the specified topology cluster.
GET /topology/clusters/{clusterId}/linksGets infrastructure links that belong to the specified topology cluster.
GET /topology/broadcast/{connectPoint}Gets indication whether the given point permits broadcast.
GET /topology/infrastructure/{connectPoint}Gets indication whether the given point belongs to network infrastructure.


GET /paths/{elementId}/{elementId}Gets set of pre-computed shortest paths between the specified source and destination network elements.


GET /flows/{deviceId}Gets list of flow rules applied to the specified infrastructure device.
GET /flows/{deviceId}/{flowId}Gets details of a specified flow rule.
GET /flowsGets details of all flow rules in the system.
POST /flows/Applies batch of flow rule operations; this includes add/remove operations.
POST /flows/{deviceId}Applies a new flow rule on the specified device.
DELETE /flows/{deviceId}/{flowId} Deletes a flow rule from the specified device.
GET /flows/link/{linkId}Gets aggregate statistics for all flows traversing the given link.


GET /intents/{intent-id}Gets the details for the given Intent object.
GET /intentsGets a collection containing all the Intent objects currently in the system.
POST /intentsCreates a new Intent object.
POST /intentsCreates a batch of Intent objects (pending -may not be included in finalized API).
DELETE /intent/{Intent-id}Removes an intent from the system.


GET /applicationsGets a list of all installed applications.
GET /applications/{app-name}Gets information about the named application.
POST /applications/Installs application using the posted app.xml or application package file (ZIP).
DELETE /applications/{app-name}Uninstalls the named application.
POST /applications/{app-name}/activeActivates the named application.
DELETE /applications/{app-name}/activeDeactivates the named application.



Previous : Appendix A : List of ONOS Test Scripts (onos-* scripts)
Next : Appendix C : Source Tree Organization