Is there a logical difference between `api` being `null` and `undefined`? Why are we singling out undefined rather than just doing `!api`?