API Plugin Unfinished

This is just so others can bang on this if they want. I might not be able to get to it again for a while.