APIs are generally designed to be language-agnostic. We can get around using APIs by themselves but to get it to do a specific task, we might have to tinker around with it a bit. That is where Client-Libraries come in handy. They make the API experience better. They are abstraction layers over the API that is specific to a language. The purpose of Client Libraries are to break the language-agnostic principle of API design to make the developer experience better.