A system call is a function.subroutine which interrupts the currently executing program and transfers control to the interrupt routine.The contents of the executing program are saved and after the interrupt routine finishes its function,control is transferred back to the executing program. If we talk in the context of Linux then System calls are called kernel mode.
Whereas API (Application Programming Interface) is a function or a set of functions, objects, protocols or data-structures for the support of application development for developers/programmers. It is actually a kind of function definition which specifies how to make available of a specific service of the system/OS to the other program/process or system. Read more at: http://www.queryhome.com/48442/os-what-is-difference-between-system-call-and-api