REST is a delivery method, it determines the interface of your application. You use REST mostly with immediate consistency model, but it can support an eventual consistency model by responding 202 accepted by commands.
Event sourcing is a general data storage mechanism. You use event sourcing usually with an eventual consistency model along with domain driven design, and command and query segregation, but it can support an immediate consistency model probably by a multi-phase commit.
They solve completely different things in your application and they are compatible with each other, so you can use them together.
As in event sourcing, the client send events, does this mean that on
the server there is a single collection of event and all POSTs of the
API will be on that collection, to add events to it?
You completely misunderstood the concept. You can store an event sequence in an event storage. Event are state changes, so if you store every state change of your application and replay it in the proper order, then you can recreate the current state of your application. This is very good, because you can migrate data to another database simply by replaying the events and transforming them into database queries. You can do just the same to create a query cache using a regular database. So your clients can read that query cache instead of always recreating the current state from the grounds.
The events are usually not created by the client. By domain driven design, your domain logic creates domain events by processing commands.
How can the client discover the commands it can send to the server?
By REST the clients use links to send requests to the REST service. The REST service can process those requests and transform them into commands and queries. The commands are processed by the domain logic, and will result in raising domain events. The queries are transformed into database queries which address the query caches.