Reading the request responses. N and M, no. of tsp pairs?
what do N and M represent in the response? I know that it has something to do with assigned spectrum frequency but I can't seem to figure out how to interpret it as there aren't any units written by it.

These n and m values refer to the ITU-T definition of flexgrid. For how to convert them into a pair of (central_frequency, width), see the nvalue_to_frequency and mvalue_to_slots functions.
@EstherLerouzic, @ojnas , perhaps we should switch to showing something like 193.35THz @50GHz instead?
I see. So to convert n and m to freq, I can use the m_to_freq.
That would make nb of tsp pairs the channels in the lightpath request. Won't it be better to incorporated into the output response.json file?
Yes, 'nb of tsp pairs represents the number of transponder pairs (and therefore also the number of provisioned media channels) for the chosen path at the requested bitrate. That is important because this demo works by requesting bandwidth capacity, which is turned into a path feasibility check, GSNR computation, and then based on the achievable GSNR and the transponder's performance characteristics of its individual modes, mode selection and then bandwidth allocation.
The output format is currently based on an older IETF draft (already expired). We will need to port that to a newer draft before we add more features in there. Just wondering -- what project are you working on, and how soon do you need this?
Thank you @jktjkt. I am working, with a team of 3, on an undergrad project for building an Optical Network Design Tool for Network Operators.
Our supervisor guided us to using GNPy for handling core logic for the tool and to base the tool on the Open Network initiative started by TIP. And so my team has been playing around with GNPy and gradually integrating it into our project. Challenging at first but, we are making progress now.