api explained