The JSON that comes from the API is usable, it's just not human-friendly. It is much more usable than a text dump of the comments that you would then have to go through and parse to extract specific information.
Canvas leaves the formatting up to us. How you want it to look is probably not how I want it to look. For example, you may want it in a printout that looks like an email thread with subject line, from, to, and message. I may want it in an Excel spreadsheet so I can sort it by date or quickly count the number of messages or make a graph of how spread out they were.
JSON is all you're going to get through the API as the API is meant for computers to understand. The Canvas Admin reports generate CSV files, but those aren't directly usable. Canvas Data provides the information in a database format that you can query against. All of these require you to manipulate it to make it human friendly.
Thankfully, JSON is well supported. Recent versions of Excel can work with JSON files although I find it easier to go ahead and convert it to CSV or native Excel format first. There are a lot converters already written to convert JSON into another format. I've seen online converters for JSON to Excel, PDF, CSV, HTML, Word, and other formats. None of them are going to give you exactly what you want because it includes the field names and those have no inherent order like an email header (your email client decides what order to put the headers in when it shows them to you).
Getting it into Excel and then doing a mail merge with Word can get you a structured human-friendly document without having to write a program.
The problem there is scale. That works well for one or two pairings, but if you're going to have to do this a lot, then something (a program) to automatically download the conversations and prepare them in the format you want can save a lot of time.
Your screen appears to be from the old analytics -- it's been a while since I used the old analytics. Did it show the actual conversation or just the number of interactions?
The list conversations endpoint allows you to filter so you can get the messages to just a specific person. You would have to masquerade as one of the users.
There is also a List of CommMessages for a user endpoint that accesses the messages (emails, sms, twitter, etc) that have been sent to a user, but you would have to go through and check who the sender was when you were looking for a conversation between users (that's part of why JSON is useful). If a student had all external communications turned off, that might not be helpful. I haven't looked at it that much.
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.