I'm kinda confused. So I understand that If we want to grab data from an API, we can just call that API url in whatever language we are using ( example in python, we can do urllib.open( url of api) and then load the json). My question is, if we can just open the url in any language, what's the point of the API libraries that developers usually have on the site ( library wrapper for python, java, c#, ruby, etc). Do we need to use a specific library to call an API in that specific language? Can we not just open up the API url in any language? What's the point of having a library in each language if we can just extract the API in each of those languages?
You don't need a library for the client.  However, developers tend to like libraries because it helps with things like creating authorization headers, creating parameterized URLs and converting response bodies into native types.
However, there are good/bad ways of building these kinds of libraries.  Many libraries hide the HTTP API and introduce a whole new set of issues that HTTP interfaces were originally designed to avoid.
Difference between API and API library/Wrapper