Skip to main content
POST
/
locations
/
{location_id}
/
gps_events
Log GPS Event
curl --request POST \
  --url https://api.crosoftware.com/v0/locations/{location_id}/gps_events \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'x-tenant-id: <x-tenant-id>' \
  --data '
{
  "location": {
    "coords": {
      "heading": "<string>",
      "latitude": "<string>",
      "longitude": "<string>",
      "speed": "<string>"
    },
    "timestamp": "2023-11-07T05:31:56Z"
  }
}
'
import requests

url = "https://api.crosoftware.com/v0/locations/{location_id}/gps_events"

payload = { "location": {
        "coords": {
            "heading": "<string>",
            "latitude": "<string>",
            "longitude": "<string>",
            "speed": "<string>"
        },
        "timestamp": "2023-11-07T05:31:56Z"
    } }
headers = {
    "x-tenant-id": "<x-tenant-id>",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'POST',
  headers: {
    'x-tenant-id': '<x-tenant-id>',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    location: {
      coords: {
        heading: '<string>',
        latitude: '<string>',
        longitude: '<string>',
        speed: '<string>'
      },
      timestamp: '2023-11-07T05:31:56Z'
    }
  })
};

fetch('https://api.crosoftware.com/v0/locations/{location_id}/gps_events', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.crosoftware.com/v0/locations/{location_id}/gps_events",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'location' => [
        'coords' => [
                'heading' => '<string>',
                'latitude' => '<string>',
                'longitude' => '<string>',
                'speed' => '<string>'
        ],
        'timestamp' => '2023-11-07T05:31:56Z'
    ]
  ]),
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>",
    "Content-Type: application/json",
    "x-tenant-id: <x-tenant-id>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.crosoftware.com/v0/locations/{location_id}/gps_events"

	payload := strings.NewReader("{\n  \"location\": {\n    \"coords\": {\n      \"heading\": \"<string>\",\n      \"latitude\": \"<string>\",\n      \"longitude\": \"<string>\",\n      \"speed\": \"<string>\"\n    },\n    \"timestamp\": \"2023-11-07T05:31:56Z\"\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("x-tenant-id", "<x-tenant-id>")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.crosoftware.com/v0/locations/{location_id}/gps_events")
  .header("x-tenant-id", "<x-tenant-id>")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"location\": {\n    \"coords\": {\n      \"heading\": \"<string>\",\n      \"latitude\": \"<string>\",\n      \"longitude\": \"<string>\",\n      \"speed\": \"<string>\"\n    },\n    \"timestamp\": \"2023-11-07T05:31:56Z\"\n  }\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.crosoftware.com/v0/locations/{location_id}/gps_events")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["x-tenant-id"] = '<x-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"location\": {\n    \"coords\": {\n      \"heading\": \"<string>\",\n      \"latitude\": \"<string>\",\n      \"longitude\": \"<string>\",\n      \"speed\": \"<string>\"\n    },\n    \"timestamp\": \"2023-11-07T05:31:56Z\"\n  }\n}"

response = http.request(request)
puts response.read_body
{
  "bearing": "<string>",
  "created_on": "2023-11-07T05:31:56Z",
  "driver_id": "<string>",
  "id": 123,
  "latitude": "<string>",
  "longitude": "<string>",
  "truck_id": 123,
  "velocity": "<string>",
  "device_name": "<string>"
}

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Headers

x-api-version
string

Version identifier (date format).

x-tenant-id
integer<int64>
required

Tenant identifier. Contact CRO Software for more info if you don't already have this id. See list tenant ids for info on listing the tenants you have access to.

Path Parameters

location_id
integer<int64>
required

Location identifier.

Body

application/json

GPS event log data.

location
object
required

GPS event location data.

Response

200 - application/json

Success

GPS event data.

bearing
string
required

Direction of travel at time of measurement.

created_on
string<date-time>
required

Timestamp of creation (must be in past).

driver_id
string
required

Driver identifier.

id
integer<int64>
required

Resource identifier.

latitude
string
required

Latitude.

longitude
string
required

longitude.

truck_id
integer<int64>
required

Truck identifier.

velocity
string
required

Rate of travel at time of measurement.

device_name
string

Name (free text).