Example requests

MOVE Backend APIs
This site shows example request between your project backend and Move SDK API.

Create a new user

Use your Move SDK Project Id and your API Key as Basic Auth to register a new User. The userId may be any arbitrary string, only : is forbidden. The maximum length of userId is 100 characters.
Request:
POST https://sdk.dolph.in/v20/auth/register
content-type: application/json
Authorization: Basic {PROJECT_ID}:{API_KEY}
{
"userId": "string"
}
Response:
{
"accessToken": "{ACCESS_TOKEN}", // allows communication with MOVE SDK back-end
"refreshToken": "{REFRESH_TOKEN}", // allows Move App to renew access token
"userId": "{USER_ID}",
"audience": "{AUDIENCE_OF_API_KEY}",
"projectId": {PROJECT_ID}
}
Initialize your Move SDK App with these tokens.

Fetch user timeline

Fetch user timeline easily with:
Request:
GET https://sdk.dolph.in/v20/timeline?userId={USER_ID}&projectId={PROJECT_ID}
content-type: application/json
Authorization: Basic {PROJECT_ID}:{API_KEY}
Response:
[
{
"projectId": {PROJECT_ID},
"userId": "{USER_ID}",
"startTs": "2022-10-16T08:06:00Z",
"endTs": "2022-10-16T09:41:00Z",
"type": "IDLE",
"features": {
"source": {
"id": "",
"name": "timeline"
}
}
},
{
"projectId": {PROJECT_ID},
"userId": "{USER_ID}",
"startTs": "2022-10-17T05:58:00Z",
"endTs": "2022-10-17T06:03:00Z",
"type": "CYCLING",
"features": {
"startLocation": {
"lat": 48.328016,
"lon": 16.204514,
"timeZone": "Europe/Vienna"
},
"endLocation": {
"lat": 48.3338,
"lon": 16.20949,
"timeZone": "Europe/Vienna"
},
"source": {
"id": "585497",
"name": "trip"
},
"gpsStats": {
"distance": 947,
"maxSpeed": 23,
"averageSpeed": 13
},
"metas": {},
"dangerousAreas": {
"areas": []
}
}
}
]
Every timeline item has the following properties:
  • projectId: Move SDK Project ID
  • userId: Id of specific User
  • startTs: start timestamp as an ISO 8601 date time
  • endTs: end timestamp as an ISO 8601 date time
  • type: Mode of transport

Fetch specific timeline items

Convert the startTs of a given timeline item to a UNIX timestamp to fetch a specific timeline item. For example,
  • in the user timeline you find a timeline item with startTs in UTC time
    "startTs":"2022-04-12T16:25:00Z"
  • Conversion into unix timestamp (UTC) is "1649780700" - this is your START_TS for fetching the specific timeline item.
  • Please note, if you want to display the trip in human readable form, you may want to translate the startTs to the local timezone (which you can find in "startLocation / timeZone"; e.g. "Europe/Vienna").
Request:
GET https://sdk.dolph.in/v20/timeline/{START_TS}?userId={USER_ID}&projectId={PROJECT_ID}
content-type: application/json
Authorization: Basic {PROJECT_ID}:{API_KEY}
Response:
{
"projectId": {PROJECT_ID},
"userId": "{USER_ID}",
"startTs": "2022-10-17T05:58:00Z",
"endTs": "2022-10-17T06:03:00Z",
"type": "CYCLING",
"features": {
"startLocation": {
"lat": 48.328016,
"lon": 16.204514,
"timeZone": "Europe/Vienna"
},
"endLocation": {
"lat": 48.3338,
"lon": 16.20949,
"timeZone": "Europe/Vienna"
},
"source": {
"id": "585497",
"name": "trip"
},
"gpsStats": {
"distance": 947,
"maxSpeed": 23,
"averageSpeed": 13
},
"metas": {},
"dangerousAreas": {
"areas": []
}
}
}

Fetch way points

Some timeline item types like CAR and CYCLING return way points.
Request:
GET https://sdk.dolph.in/v20/timeline/{START_TS}/points?userId={USER_ID}&projectId={PROJECT_ID}&withWayPointInfo=true
content-type: application/json
Authorization: Basic {PROJECT_ID}:{API_KEY}
Response:
[
{
"lat": 48.31712,
"lon": 16.2256,
"timestamp": "2022-09-01T14:50:08Z",
"wayPointInfo": {
"speed": 66,
"speedLimit": 100,
"wayType": "other",
"origLat": 48.317138,
"origLon": 16.225608
}
},
{
"lat": 48.31711,
"lon": 16.22608,
"timestamp": "2022-09-01T14:50:10Z",
"wayPointInfo": {
"speed": 67,
"speedLimit": 100,
"wayType": "other",
"origLat": 48.317118,
"origLon": 16.226084
}
}
]
Important: The Move SDK always tries to match GPS points to an existing road. For the original way points withWayPointInfo is required.

Label item

Relabel existing timeline items with a PATCH request:
PATCH https://sdk.dolph.in/timeline/label/{START_TS}/{NEW_MODE_OF_TRANSPORT}?userId={USER_ID}&projectId={PROJECT_ID}
Content-Type: application/json; charset=UTF-8
Authorization: Basic {PROJECT_ID}:{API_KEY}
Possible mode of transports:
  • UNKNOWN
  • DRIVING
  • TRAIN
  • TRAM
  • CAR
  • METRO
  • FAKETRIP
  • WALKING
  • IDLE
  • CYCLING
The response to this request is the existing timeline item with the new type.

Delete item

Delete a single timeline item.
DELETE https://sdk.dolph.in/v20/timeline/{START_TS}?userId={USER_ID}&projectId={PROJECT_ID}
Content-Type: application/json; charset=UTF-8
Authorization: Basic {PROJECT_ID}:{API_KEY}

Fetch last user location

Every user has 4 last locations, in different contexts:
  • car-end: last position of his car
  • timeline-end: end location of last timeline item
  • trip-position: updates live during a trip
  • user-pos: updates user walking position
GET https://sdk-test.dolph.in/v20/location?projectId={PROJECT_ID}&userId={USER_ID}
Content-Type: application/json; charset=UTF-8
Authorization: Basic {PROJECT_ID}:{API_KEY}
Response:
[
{
"context": "car-end",
"lat": 48.322418,
"lon": 16.203955,
"timestamp": "2022-10-15T16:29:00Z"
},
{
"context": "timeline-end",
"lat": 48.3338,
"lon": 16.20949,
"timestamp": "2022-10-17T06:03:00Z"
},
{
"context": "trip-position",
"lat": 48.214684,
"lon": 16.413719,
"timestamp": "2022-10-17T07:04:41Z"
},
{
"context": "userpos",
"lat": 48.214723,
"lon": 16.413646,
"timestamp": "2022-10-17T07:03:10Z"
}
]