PHPackages                             sylus-code/multisport-mysports-wrapper - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. sylus-code/multisport-mysports-wrapper

ActiveLibrary[API Development](/categories/api)

sylus-code/multisport-mysports-wrapper
======================================

tomtom mysports api wrapper

1.0.1(5y ago)03MITPHP

Since Nov 10Pushed 5y ago1 watchersCompare

[ Source](https://github.com/sylus-code/multisport-mysports-wrapper)[ Packagist](https://packagist.org/packages/sylus-code/multisport-mysports-wrapper)[ RSS](/packages/sylus-code-multisport-mysports-wrapper/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (2)Versions (3)Used By (0)

MySports Api Wrapper
====================

[](#mysports-api-wrapper)

#### Description

[](#description)

As tomtom has problem with supporting its running watches, I've decided to create a tool to manage trainings based on Tomtom MySports App

#### Quick start

[](#quick-start)

```
use GuzzleHttp\Client;
use SylusCode\MultiSport\MysportsWrapper\Api\ApiWrapper;
use SylusCode\MultiSport\MysportsWrapper\Api\CookieAuthenticator;
use SylusCode\MultiSport\MysportsWrapper\Workout\WorkoutParser;
use SylusCode\MultiSport\MysportsWrapper\Workout\WorkoutTypeResolver;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;

        $client = new Client();
        $workoutParser = new WorkoutParser();

        // you can overwrite type resolver if you need more logic there
        $workoutTypeResolver = new WorkoutTypeResolver();
        $auth = new CookieAuthenticator($client, '******@gmail.com', 'VeryStrongPassw0rd');

        $api = new ApiWrapper($client, $auth, $workoutParser, $workoutTypeResolver);
        $result = $api->getWorkouts($options);

        var_dump($result);

        // Example output:
        array(1) {
          [0]=>
          object(SylusCode\MultiSport\Workout\Workout)#1503 (14) {
            ["time":"SylusCode\MultiSport\Workout\Workout":private]=>
            NULL
            ["type":"SylusCode\MultiSport\Workout\Workout":private]=>
            object(SylusCode\MultiSport\Workout\Type)#1457 (2) {
              ["id":"SylusCode\MultiSport\Workout\Type":private]=>
              int(1)
              ["name":"SylusCode\MultiSport\Workout\Type":private]=>
              string(8) "Bieganie"
            }
            ["distance":"SylusCode\MultiSport\Workout\Workout":private]=>
            float(595.98)
            ["calories":"SylusCode\MultiSport\Workout\Workout":private]=>
            int(36)
            ["durationTotal":"SylusCode\MultiSport\Workout\Workout":private]=>
            int(420)
            ["points":"SylusCode\MultiSport\Workout\Workout":private]=>
            array(18) {
              [0]=>
              object(SylusCode\MultiSport\Workout\Point)#1501 (7) {
                ["time":"SylusCode\MultiSport\Workout\Point":private]=>
                object(DateTime)#1510 (3) {
                  ["date"]=>
                  string(26) "2020-11-12 07:28:17.000000"
                  ["timezone_type"]=>
                  int(2)
                  ["timezone"]=>
                  string(1) "Z"
                }
                ["latitude":"SylusCode\MultiSport\Workout\Point":private]=>
                float(51.392342)
                ["longtitude":"SylusCode\MultiSport\Workout\Point":private]=>
                float(16.696368)
                ["altitude":"SylusCode\MultiSport\Workout\Point":private]=>
                float(113.8)
                ["distance":"SylusCode\MultiSport\Workout\Point":private]=>
                float(0)
                ["heartRate":"SylusCode\MultiSport\Workout\Point":private]=>
                int(108)
                ["speed":"SylusCode\MultiSport\Workout\Point":private]=>
                float(0)
              }
              ..

```

#### Advanced used

[](#advanced-used)

There is an option to use specific filter to select workouts from desired date range by use `ByDateFilter`You can aloso create your own filters. To do that you need to implement Filter interface.

```
use SylusCode\MultiSport\MysportsWrapper\Api\Options\ByDateFilter;
use SylusCode\MultiSport\MysportsWrapper\Api\Options\Options;

 ..
 $options = new Options();
 $filterDateFrom = ByDateFilter::createWithDateFrom(new \DateTime('2020-09-26'));
 $options->addFilter($filterDateFrom);
 $result = $api->getWorkouts($options);

```

#### What's next

[](#whats-next)

Add new filters in example: WorkoutType, Distance, AvgSpeed Add to Options page number with limit

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

2

Last Release

2004d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e0056988fddbc6f405402e41d393027a62a041cab3b8127c0b4325d873031104?d=identicon)[cenee](/maintainers/cenee)

---

Top Contributors

[![sylus-code](https://avatars.githubusercontent.com/u/12199141?v=4)](https://github.com/sylus-code "sylus-code (3 commits)")

### Embed Badge

![Health badge](/badges/sylus-code-multisport-mysports-wrapper/health.svg)

```
[![Health](https://phpackages.com/badges/sylus-code-multisport-mysports-wrapper/health.svg)](https://phpackages.com/packages/sylus-code-multisport-mysports-wrapper)
```

###  Alternatives

[tencentcloud/tencentcloud-sdk-php

TencentCloudApi php sdk

3731.2M42](/packages/tencentcloud-tencentcloud-sdk-php)[convertkit/convertkitapi

Kit PHP SDK for the Kit API

2167.1k1](/packages/convertkit-convertkitapi)[mapado/rest-client-sdk

Rest Client SDK for hydra API

1125.9k2](/packages/mapado-rest-client-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
