Application Programming Interface, its used to read and write data a program (Star Citizen) with another program / application. For example, weapons management (right now is disabled) must be done with the in-game UI (User Interface), the MFD interface, therefor you need to look down, switch on in game mouse and adjust your weapon group settings. If you must do this during fight... well, fight over. However, if SC has an API o control your weapon groups outside SC, you can manage your weapons outside the game allowing you to fight further, don't have to enter the MFD interface.
A simple one way API are the keybindings / keyboard / mouse. You can use an external program like Roccat Powergrid, voiceattack or another macro program to simulate keypresses or mouse movement. I made a macro to simulate switching to HUD mode, click on the right spots and return to flight again. The flaw of this macro was that you need to release controls, fire the macro and take over control again. Another bad point is that the macro doesn't knows the current state in game. If I want to switch enable a weapon to a firegroup, than I must click to enable, click again to disable. The macro can't check the current state of that weapon, so it just clicks that weapon, not knowing if it enables or disables that weapon.
An API however would allow to ask from SC the weapon state, enabled or disabled and could do the appropriate action, if disabled, enable the weapon, if enabled, don't do anything. Because the API doesn't work with the user interface (mouse / keyboard / controllers) but communicates directly with the program, Star Citizen, this can be done without interfering with flight / fight.