{% extends "base.html" %} {% block title %}About us{% endblock title %} {% block content %}
On this page, a work in progress, I will collect useful information for developers of rowing data apps and hardware.
I presume you have an app (smartphone app, dedicated hardware, web site) where your users (customers) generate, collect or store their rowing related workout data. You can now offer your users easy ways to get their data on this site.
There are three ways to allow your users to get data to Rowsandall.com.
Enable export of TCX, FIT or CSV formatted files from your app. The users upload the file to Rowsandall.com.
Similar as above, generate TCX, FIT or CSV formatted files and email them to workouts@rowsandall.com directly from your app. The From: field should be the email address of the registered user.
We are building a REST API which will allow you to post and receive stroke data from the site directly.
The REST API is a work in progress.
All files adhering to the standards TCX and FIT formats will be parsed.
However, some rowing related parameters are not supported by TCX and FIT. Therefore, we are supporting the CSV format that is documented in the following link.
Using this standard will guarantee that your user's data are accepted without complaints.
As a registered user, you can register an app.
Standard Oauth2 authentication. Get authorization code by pointing your user to the authorization URL. Exchange authorization code for an access token. When access token expires, use the refresh token to refresh it.
The POST call must have content-type: x-www-form-urlencoded. I set it this way to support the handy testing utility mentioned belower. However, I really would like to support application/json but with the current framework I cannot support both at the same time. Expect changes. Write to me if you want to be notified of changes.
Once you have a registered app, you have gone through the authorization and have successfully obtained an access token, you can use it to place POST, GET and PUT requests.
The workout summary data and the stroke data are obtained and sent separately.
You can only post stroke data to an existing workout with workout number {id}. If the workout already has stroke data, you will get a duplication error. This functionality will be expanded in the future to enable updating stroke data. Stroke data for workout {id} are posted to:
The payload is application/json data and looks as follows:
{
"distance": [5,12,19,27,35,43,51,59,67,75,82,90,100],
"power": [112,221,511,673,744,754,754,749,729,729,726,709,707],
"hr": [132,131,131,132,133,136,139,142,145,147,150,152,153],
"pace": [145800,116400,88100,80400,77700,77400,77400,77600,78300,78300,78400,79000,79100],
"spm": [11,41,56,59,55,48,48,48,48,48,48,48,49],
"time": [0,2200,4599,7000,9599,12000,14400,16799,19400,21799,24200,26599,2900],
}
Mandatory data fields are:
Optional data fiels are:
Consistency checks will be done and the stroke data will be refused if the mandatory data fields don't pass the checks. All mandatory data fields must have the same number of records. If an optional data field fails a test, its values are silently replaced by zeros.