added api file

- the api is bare bones, and we don't need to do any fancy tricks to
make a more manageable codebase.