I think you're looking for courses.tab_configuration which is JSON. Active tabs are generally either
"hidden": false
or don't have a "hidden" attribute.
The following isn't exact, since it was from parsing a json file that contained the tab_configuration json and the course code, but it's in the ballpark for logic (using jq on linux):
jq '.[] | .value.course_code as $code | select (.value.tab_configuration != []) | .value.tab_configuration[] | select
(.hidden == null or .hidden==false) | select (.id | tostring | contains("external_tool_2753")) | $code'
The json I was parsing looked like this. "hidden": true ones are not visible in the course menu.
[
{
"value": {
"course_code": "VW286.OCD.FA23SU24.WRKS",
"tab_configuration": [
{
"id": 0
},
{
"id": 14
},
{
"id": 10
},
{
"id": 8
},
{
"id": 5
},
{
"id": "context_external_tool_9"
},
{
"id": "context_external_tool_41282"
},
{
"id": "context_external_tool_55818"
},
{
"id": "context_external_tool_65483"
},
{
"id": "context_external_tool_92481"
},
{
"id": "context_external_tool_1768"
},
{
"id": "context_external_tool_8537",
"hidden": true
},
{
"id": "context_external_tool_83014",
"hidden": true
},
etc. etc.