List mileage rates
Lists the ACTIVE mileage rates of the caller's legal entity, ordered by name — the value set for MileageRateID on mileage registrations.
A mileage rate is a named reimbursement / invoicing scheme for car travel (e.g. "Private car — tax free"), configured per legal entity under Settings → Mileage rates. The response carries its configuration (unit, reimbursement currency, salary codes, finance account) but NOT the money amounts: cost, sales price, reimbursement and tax-free amount per unit live in effective-dated rate periods that no REST operation exposes. TimeLog applies the period covering the trip date when a mileage registration is saved. Only active rates of the caller's own legal entity are returned; there is no status or legal-entity parameter.
Use it to:
- Mileage-rate picker in a mobile / trip-capture client (pick IsDefaultForPrivateCar as the preselection)
- Mapping a payroll mileage code to a TimeLog MileageRateID before creating mileage registrations
Not for:
- Rate amounts per km — not exposed by the API (gap)
- Inactive rates or rates of another legal entity — use
GET /v1/mileage-rate/{mileageRateID}with a known ID
Behaviour:
- Idempotent.
- Safe to retry.
- Changes are visible to the next read immediately.
Next: POST /v1/mileage-registration, GET /v1/mileage-rate/{mileageRateID}
See also: GET /v1/currency/{status}
curl -X GET "https://app3.timelog.com/your-account/api/v1/mileage-rate?$page=1&$pagesize=10" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
import json
url = "https://app3.timelog.com/your-account/api/v1/mileage-rate?$page=1&$pagesize=10"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch("https://app3.timelog.com/your-account/api/v1/mileage-rate?$page=1&$pagesize=10", {
method: "GET",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://app3.timelog.com/your-account/api/v1/mileage-rate?$page=1&$pagesize=10", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://app3.timelog.com/your-account/api/v1/mileage-rate?$page=1&$pagesize=10')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
response = http.request(request)
puts response.body
{
"Properties": {
"TotalRecord": "example_string",
"TotalPage": "example_string",
"PageNumber": "example_string"
},
"Entities": [
{
"Properties": {
"ID": "123e4567-e89b-12d3-a456-426614174000",
"MileageRateID": 123,
"Name": "John Doe",
"IsActive": true,
"SalaryCodeTaxFree": "null",
"SalaryCodeTaxable": "null",
"AccountNumber": "null",
"IsDefaultForPrivateCar": true,
"HasReimbursement": true,
"UnitType": 42,
"ReimbursementCurrencyID": 123,
"LegalEntityID": 123
},
"Links": [
{
"Href": "example_string",
"Rel": "example_string"
}
],
"Actions": [
{}
]
}
],
"Links": [
{
"Href": "example_string",
"Rel": "example_string"
}
]
}
{
"Message": "Authorization has been denied for this request."
}
{
"Code": 100,
"Message": "Unknown error occur in system, please contact system administrator.",
"Details": [],
"Parameters": "…",
"Url": "https://app{server-number}.timelog.com/{account}/api/v1/mileage-rate"
}
/v1/mileage-rate
Target server for requests. Edit to use your own host.
OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp).
The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user.
Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp).
The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user.Page number.
Page size. No maximum enforced in the API layer.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp).
The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user.
Query Parameters
Page number.
Page size. No maximum enforced in the API layer.
Responses
Paging values. They are returned as STRINGS, for example "TotalRecord": "12".
Omitted (not []) when the list is empty.