In a software-defined network (SDN) architecture, the northbound application program interfaces (APIs) are used to communicate between the SDN Controller and the services and applications running over the network. SDN Northbound APIs are also used to integrate the SDN Controller with automation stacks, such as Puppet, and CFEngine. The goal is to abstract the inner-workings of the network, so that application developers can 'hook' into the network and make changes to accommodate the needs of the application without having to understand exactly what that means for the network. In a software-defined network (SDN) architecture, southbound application program interfaces (APIs) (or SDN southbound APIs) are used to communicate between the SDN Controller and the switches and routers of the network.
North-bound and South-bound API: In Software Defined Networking (SDN), Northbound and Southbound APIs are used to describe how interfaces operate between the different planes - data plane, control plane and application plane.
Southbound interfaces define the way the SDN controller should interact with the data plane (aka forwarding plane) to make adjustments to the network, so it can better adapt to changing requirements. OpenFlow is a well-known southbound interface. With OpenFlow, entries can be added and removed to the internal flow-table of switches and potentially routers to make the network more responsive to real-time traffic demands.