Designing and maintaining useful and usable APIs remains challenging. At Google we
manage hundreds of APIs. In this article we report on the experience of doing so
and describe six on-going challenges: resource allocation, empirically-grounded
guidelines, communicating issues, supporting API evolution over time, usable auth,
and usable client libraries at scale.