This site shows example request between your project back-end and Move back-end.
1. Create a new user
Use your Move SDK Project Id and your API Key as Basic Auth to register a new User. User Id can be every string combination only : is forbidden. The max length of User Id is 100 characters.
Request:
Copy POST https://sdk.dolph.in/v20/auth/register
content-type: application/json
Authorization: Basic {PROJECT_ID}:{API_KEY}
{
"userId": "string"
}
Response:
Copy {
"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 this tokens.
2. Fetch user timeline
Fetch user timeline easily with:
Request:
Copy GET https://sdk.dolph.in/v20/timeline?userId={USER_ID}&projectId={PROJECT_ID}
content-type: application/json
Authorization: Basic {PROJECT_ID}:{API_KEY}
Response:
Copy [
{
"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:
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
3. Fetch specific timeline
Convert startTs to epoch UNIX timestamp to fetch specific timeline item. For example,
in the user timeline you find a timeline item with startTs in UTC time
Copy "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:
Copy 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:
Copy {
"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": []
}
}
}
3. Fetch way points
Some timeline item types like CAR and CYCLING return way points.
Request:
Copy 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:
Copy [
{
"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 Move SDK always tries to match GPS points with an existing road. For the original way points withWayPointInfo is required.
4. Label item
Relabel existing timeline items with an PATCH request:
Copy 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:
Response is the existing timeline item with the new mode of transport as type.
5. Delete item
Delete a single timeline item.
Copy 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}
6. Fetch last user location
Every user has 4 last location:
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
Copy 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:
Copy [
{
"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"
}
]