What is the difference between northbound and southbound APIs?
Show the answer
Say this first
Northbound APIs face up, from the controller to applications, orchestrators and scripts. They are usually REST with JSON and speak in business terms like sites, policies and devices. Southbound APIs face down, from the controller to the network devices: OpenFlow, NETCONF, RESTCONF, gNMI, SNMP, or plain SSH and CLI.
Go deeper
Picture it as a stack
ITSM, orchestrator, your Python script
| northbound: REST API, JSON, webhooks
Controller (Catalyst Center, APIC, SD-WAN Manager)
| southbound: NETCONF, RESTCONF, gNMI, SNMP, SSH, OpenFlow, OpFlex
Switches, routers, firewalls, APsExamples
| Product | Northbound | Southbound |
|---|---|---|
| Cisco Catalyst Center | Intent API (REST), webhooks for events | SSH and CLI, SNMP, NETCONF |
| Cisco ACI APIC | REST API over the object model (JSON or XML) | Policy pushed to the Nexus 9000 fabric; Cisco describes OpFlex as the policy protocol |
| OpenDaylight, ONOS | REST APIs | OpenFlow, NETCONF, BGP-LS, PCEP |
East-west
Some people also name an east-west interface: controllers talking to each other in a cluster or between domains, for example to sync state or federate policy.
They will ask next
Why does the northbound API matter more to an automation team than the southbound one?
The northbound API is what you code against. The controller hides the southbound details, so you send one request to create a VLAN pool for a site instead of logging in to every switch. When you choose a controller, the quality and stability of its northbound API decides how much you can automate.
Traps
- Mixing up the directions. North is toward apps and people, south is toward devices.