Calling something an API doesn't tell you much about it. It's a very broad category, so very unrelated things will fall into it. But lets take a look at the two you mentioned.
Representational State Transfer (REST) is an architectural style that defines a set of constraints and properties based on HTTP.
This has become a very common method for websites to request data from a server. That being said, it is just one way for two remote systems to talk with each other. It doesn't have to use a database at all.
For example, you might send a GET request to
somedomain.com/increment/35 and get 36 returned as a response. No database needed. Just some code adding 1 to whatever you provide it.
ORM in computer science is a programming technique for converting data between incompatible type systems using object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language.
I feel like that quote leaves out the common and perhaps only decent use-case, which is to serve as a middleman between your code and a database. The idea is that it will simplify the access and modification of database entries.
For example, instead of writing out SQL statements in your code
SELECT something FROM myTable, you could write something like
entries = orm.myTable.getAll() // This replaced the SELECT call
loop entries as entry
One benefit to this is that if that table's name changes, you only need to update the ORM rather than all the SELECT calls. One downside is the complexity that the ORM brings with it. If it saves time, use it. If not, don't.