Skip to main content

NikePlus API

As a Nike+ user and software engeneer I thought it would be interesting to be able to get the raw data of my runs. This little bit of software enables you to fetch that data either in XML (as provided by Nike) or in JSON.

All you need is you UserID, which you can get by following those steps:

  1. Sign in to NikePlus.

  2. Click My Runs.

  3. Click the Share button on the top right of your runs.

  4. Click Add to a Web page.

  5. Click Grab the Code.

The Code is now copied to your clipboard. Inside that code, you can find your UserID.

How to use

The following tests are live tests with my UserID. They will ensure, that the code works against the live Nike+ API.

>>> import sw.nikeplus
>>> user_id = 279218513

Retrieving data in XML

>>> print sw.nikeplus.get_xml(user_id)
<?xml...<status>success...<run id="1889752785" workoutType="standard"><startTime>2006-10-31T16:50:07+01:00...

The response from Nike+ is cached. If, for any reason, the service is out-of-order on the next try, the old response is returned. You may force a refresh by providing the optional parameter force.

Retrieving data in JSON

>>> print sw.nikeplus.get_json(user_id)
{'status': 'success',...'startTime': '2006-10-31T16:50:07+01:00', 'duration': '1752873', 'id': '1889752785', 'workoutType': 'standard'...

The response from Nike+ is cached here, too. You can provide the optional parameter force as well, if you like to disable caching.

Helper functions

There is a helper function called xml2json. It should work with every XML, not just with the Nike+ one. It is tested inside the package, but may be used from other packages, if you need it:

>>> import sw.nikeplus.utils
>>> print sw.nikeplus.utils.xml2json(
...     """<?xml version="1.0" encoding="UTF-8"?>
...        <note id="1234">
...          <to>Tove</to>
...          <from>Jani</from>
...          <heading>Reminder</heading>
...          <body>Don't forget me this weekend!</body>
...        </note>""")
{'body': "Don't forget me this weekend!", 'to': 'Tove', 'from': 'Jani', 'heading': 'Reminder', 'id': '1234'}

CHANGELOG

0.1 (2012-04-04)

  • initial release

Release files for sw.nikeplus 0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sw.nikeplus 0.1
File Size Uploaded
sw.nikeplus-0.1.tar.gz 7.0 kB Details

Release files / sw.nikeplus-0.1.tar.gz

Download URL sw.nikeplus-0.1.tar.gz
Size 7.0 kB
Tags Source
SHA-256 checksum
How to use checksums
831879fca383c076e77768201c39b36686ca84bbfaa8e90b4e2eea8a514715fd
BLAKE2b-256 checksum
How to use checksums
9d66ecdd10175225b5f065d9e81fba603a2d4881d76b0e5d86f3ecf7ef876de0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page