This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How do I search for activities with no gear assigned?

I'd like to find any runs that I neglected to assign shoes to and go back and assign shoes, so I can better track shoe mileage.

I don't see a search option to find runs with no gear.

  • There isn't such a search option. You'll just have to use the arrow keys to flip through each activity record, and 'eyeball' the shoe icon to identify which ones don't have shoes assigned, if fixing up records retrospectively to make up for past neglect is important to you now.

  • Some solution is to list activities to get IDs using:

    connect.garmin.com/modern/proxy/activitylist-service/activities/search/activities?limit=20&start=0

    To list all activities, set the limit higher (ex. 100) - or download by parts using start (a number from where to start listing, by default it's 0, so from the latest activity to 20).

    .

    Then check if there is a gear for an activity by ID:

    connect.garmin.com/modern/proxy/gear-service/gear/filterGear?activityId=###

    .

    Somebody could make a script to check it automatically.

  • Here.

    Use in web-browser console (shortcut is F12 key) after opening Connect website. Tested in Firefox.

    If you have more activities, change limit=200.

    jQuery.getJSON(
        'https://connect.garmin.com/modern/proxy/activitylist-service/activities/search/activities?limit=200',
        function(act_list)
        {
            act_list.forEach(
            function(act)
                {
                    jQuery.getJSON(
                        'https://connect.garmin.com/modern/proxy/gear-service/gear/filterGear?activityId=' + act['activityId'],
                        function(gear)
                            {
                                if(gear.length === 0)
                                {
                                    console.dir(act['activityId'], act['activityName'], act['startTimeLocal']);
                                }
                            }
                    );
                }
            );
        }
    );

  • Awesome!  Thanks so much.

    I changed it to ?activityType=running&limit=500 and that got me the list I was looking for.

  • Are these paths still valid? They do not seem to work anymore. What are the equivalents for today's GarminConnect set-up. Thx!

  • It still works, of course need to be logged in, and it checks activities one by one from newest, so if some old activity has missing gear, then it will take some time to reach it, a good idea is to add filters to the search link as proposed above.

  • Sorry for the trouble... works indeed like a charm! Thanks so much Pray tone1Pray tone1

  • I change one line so there are links to the activities we can click and get right to it.


    console.log('https://connect.garmin.com/modern/activity/'+act['activityId'], act['activityName'], act['startTimeLocal']);

    
    

    1. Open Garmin Connect: Log in to your Garmin Connect account in your web browser.

    2. Open Developer Console:

      • In Google Chrome and Mozilla Firefox, you can open the developer console by pressing Ctrl+Shift+I (or Cmd+Option+I on macOS).
      • In Microsoft Edge, you can press Ctrl+Shift+I (or Cmd+Option+I on macOS).
      • In Safari, you need to enable the Developer menu first: Go to Safari Preferences > Advanced and check the "Show Develop menu in menu bar" option. Then, you can open the console by going to Develop > Show JavaScript Console.
    3. Copy and Paste the Script: Copy the entire script you provided and paste it into the developer console's "Console" tab.

      jQuery.getJSON(
      'connect.garmin.com/.../activities
      function(act_list)
      {
      act_list.forEach(
      function(act)
      {
      jQuery.getJSON(
      'connect.garmin.com/.../filterGear + act['activityId'],
      function(gear)
      {
      if(gear.length === 0)
      {
      console.dir(act['activityId'], act['activityName'], act['startTimeLocal']);
      }
      }
      );
      }
      );
      }
      );
    4. Press Enter: After pasting the script, press Enter to run it.

  • Bugger, I think this stopped working on Firefox 120.0.1 and Safari 17.1.2. Unfortunately debugging JavaScript is way out of my comfort zone. Does anybody have an idea how to get this up and running again?