@tcooper1
You could consider combining information from different Canvas Account Reports together. If you go to your Admin account, click Settings in the account navigation, and click the Reports tab, you will see the different available reports.
You could run a Provisioning Report first to find users that are Observers. If you only care about Observers that are linked with Students, you could run the "User Observers" report. If you want to find all users that are enrolled as an Observer, you will want to run the "Enrollments" report. Keep in mind, while select "All Terms" is the simplest option to get all data at once, if you have been using Canvas for awhile it may take a while for the report to generate.
To determine last login/activity, you can run the "Last User Access" and/or "Last Enrollment Activity" report.
Once you have the reports you need, you could use Excel and the XLOOKUP function to combine the data together.
To go the API route, you will most likely need to learn how to handle pagination to get all of the results. The List users in account endpoint would be a good starting point. You can use the request parameter "enrollment_type" to limit the users to only those that are enrolled as "observer" in a course. The data returned from this will also show last login.
Here are some resources in the Canvas Community that may help with getting started with the Canvas API: