Not quite what you are looking for - but Splash Access is a guest portal system, and it has a lot of integrations. I'm guessing it might have some kind of system to send a report weekly.
https://www.splashaccess.com/
Otherwise, if you are keen to use the API ... you basically want this:
for client in dashboard.networks.getNetworkClients(net['id'],total_pages='all',timespan=7*86400,vlan=2):
print(f"\"{client['description']}\" with IP \"{client['ip']}\" made by \"{client['manufacturer']}\" ")
It retrieves all clients in the last 7 days. There are lots of filters. This example extracts out all the clients on VLAN2.