Getting historical data of delegations and unbondings?

Hi there, Right now problem that I’m solving requires me to track staking rewards and try to interpolate total rewards received in a day. I require trace all delegation, redelegation, and unbonding transactions, what I’ve failed to do so far is to find a way to obtain the information above. I found some REST API (Cosmos Network - Internet of Blockchains) that can give the number of rewards received not the exact timing of delegation and undelegation. Is there a way? By cosmos SDK events or Rest API? I’m also confused between the difference in REST API and cosmos sdk events?