My experience working with APIs showed me that using the php session or any code level session handling system seriously reduces the application performance.
This question is a recommended read for your matter.
Have in mind that a Rest Web Service handles requests done by devices or automated clients, not just concurrent human accesses as the server side session might be good for.
To handle authentication and authorization it is commonly used to implement a token based authentication. Oauth2 is a great and wide used 2-factor authentication system in which, your clients got temporal tokens that the API is authorizing.
An auth gives you a strong and flexible security and user based access (roles, priviledges, etc.) that can be used both in server side or client side for protecting resources. And would give elegant solutions to:
How do we maintain session timeout at the UI level
Serve the token with a expired value according with the timeout you want.
Do we need to encrypt the data before sending it? If so how do we do it using Jquery?
It is strongly recommended that the API go under https protocol to protect the data of your users.
Make use of client libraries that support https.
You could sign the client code (browser files) you submit to the client side, so you ensure that the client uses "signed requests" for his token.
Encypting the application data could drive you into huge server bottlenecks when decoding the encoded data sent by your clients.
Have in mind the client is separated, but the server is unique (or a scalable infrastructure in a good case) and decrypting the requests from all the clients (as more clients better)... well, really up to your budget for the server infrastructure and operations.
Hope it's useful.