O/D Analysis

Analysis Preview

Important Note
Explore ready-to-use traffic reports and data visualizations immediately by signing up for a 30-day free trial on the MOVE Portal. Once registered, you’ll receive an API key to start using the Traffic Analytics APIs right away. Alternatively, you may contact our Sales team for a tailored solution.

Purpose

Get a preview of the analysis by sending a GET request.

Request data

HTTPS Method: GET

For ease of viewing and identification:

  • Parameters enclosed in curly brackets { } must be replaced with their values.
  • Please see the following Request parameters section with the required and optional parameters tables for their values. The generic request format is as follows.

Format

get
URL request format
https://api.tomtom.com/origindestination/1/analysis/flowmatrix/{id}?key={Your_API_Key}

Example

get
URL request example
https://api.tomtom.com/origindestination/1/analysis/flowmatrix/512?key={Your_API_Key}

Request parameters

Required parameters

Description

id
integer

Analysis number id.


Value: The analysis number id.

key
string

Authorization key for access to the API.


Value: Your valid API Key.

Response data

Response structure

Field

Description

analysisInfo
object

Information about the analysis.

analysisInfo.id
string

Analysis number id, returned as a string.

analysisInfo.name
string

Job name, given for the user’s convenience.

analysisInfo.type
string

Analysis type. Always FLOW_MATRIX for this endpoint.

analysisInfo.analysisVersion
integer

Version of the analysis. It decides the shape of every result of this analysis, so read it before parsing them.

analysisInfo.status
string

Job status. One of the following values:

  • WAITING

  • RUNNING

  • ENDED

  • FAILED

  • CANCELLED

  • ACCEPTED

  • REJECTED

analysisInfo.currentProgress
integer

Current value of the job progress (0-100).

analysisInfo.estimatedDuration
integer

Estimated time in seconds to change the analysis status from RUNNING to ENDED. null until the estimate has been computed.

analysisInfo.creationTime
datetime

Job creation time in YYYY-MM-DDTHH:mmZ format.

analysisInfo.startAnalysisTime
datetime

Date and time start of the analysis in the format: YYYY-MM-DDTHH:mmZ. null until the job starts.

analysisInfo.endAnalysisTime
datetime

Date and time end of the analysis in the format: YYYY-MM-DDTHH:mmZ. null until the job finishes.

analysisInfo.timeDefinition
object

Time definition of the analysis.

analysisInfo.timeDefinition.zoneId
string

Time zone as a TZ database name. For example Europe/Amsterdam or UTC.

analysisInfo.timeDefinition.daysOfWeek
array (of strings)

Days of the week of the analysis.

analysisInfo.timeDefinition.dateRanges
array

List of date ranges of the analysis.

analysisInfo.timeDefinition.timeRanges
array

List of time ranges of the analysis. A trip is counted in a time range if it entered its origin region within that range.

analysisInfo.dataSources
string

Data sources the analysis runs on.

analysisInfo.tripStats
boolean

Whether histogram trip statistics were enabled for the analysis.

analysisInfo.isMapMatched
boolean

Whether the service actually map-matched the traces of this analysis.

analysisInfo.map
object

The map used for map-matching, with type and version. Not returned when the analysis is not map-matched.

regionsLink
string

URL to the regions defined in the analysis. Your API Key needs to be added to the URL.

results
array

List of the results, one entry per date range and time range combination. Available only when the analysis has a status of ACCEPTED; the field is omitted otherwise.

Response example

Replace {map_version} with the map version the analysis actually ran on; the value is returned by the service and changes with the analyzed period.

Response body - JSON
{
"analysisInfo": {
"id": "4521660963097771615",
"name": "Example analysis",
"type": "FLOW_MATRIX",
"status": "ACCEPTED",
"currentProgress": 100,
"estimatedDuration": 360,
"creationTime": "2026-04-22T11:49Z",
"startAnalysisTime": "2026-04-22T11:49Z",
"endAnalysisTime": "2026-04-22T11:55Z",
"timeDefinition": {
"dateRanges": [
{
"startDate": "2026-04-06",
"endDate": "2026-04-12",
"exclusions": [],
"daysOfWeek": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]
}
],
"timeRanges": [
{
"startTime": "00:00",
"endTime": "00:00"
}
],
"zoneId": "Europe/Warsaw",
"daysOfWeek": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"],
"timeRangeCondition": "ENTERS_REGION"
},
"tripStats": true,
"dataSources": "ALL",
"map": {
"type": "OPEN_DSEG",
"version": "{map_version}"
},
"mapMatchOption": "AUTO",
"isMapMatched": true,
"mapType": "ORBIS",
"analysisVersion": 2
},
"regionsLink": "https://api.tomtom.com/origindestination/rest/analysis/4521660963097771615/regions?version=...",
"results": [
{
"dateRange": {
"startDate": "2026-04-06",
"endDate": "2026-04-12",
"exclusions": [],
"daysOfWeek": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]
},
"timeRange": {
"startTime": "00:00",
"endTime": "00:00"
},
"tripsResultFileSize": 1.63e-4,
"tripsWholeResultLink": "https://api.tomtom.com/origindestination/rest/analysis/flowmatrix/.../result/trips?dateRange=0&timeRange=0",
"tripsPartialResultLink": "https://api.tomtom.com/origindestination/rest/analysis/flowmatrix/.../result/partial/trips?dateRange=0&timeRange=0",
"hoursOfDayHistogramPartialResultLink": "https://api.tomtom.com/origindestination/rest/analysis/flowmatrix/.../result/partial/histogram?dateRange=0&timeRange=0&type=HOURS_OF_DAY",
"lengthsHistogramPartialResultLink": "https://api.tomtom.com/origindestination/rest/analysis/flowmatrix/.../result/partial/histogram?dateRange=0&timeRange=0&type=LENGTHS",
"durationsHistogramPartialResultLink": "https://api.tomtom.com/origindestination/rest/analysis/flowmatrix/.../result/partial/histogram?dateRange=0&timeRange=0&type=DURATIONS",
"avgSpeedsHistogramPartialResultLink": "https://api.tomtom.com/origindestination/rest/analysis/flowmatrix/.../result/partial/histogram?dateRange=0&timeRange=0&type=AVG_SPEEDS"
}
]
}

Field

Description

tripsWholeResultLink
string

URL to the whole analysis trips result.

tripsPartialResultLink
string

URL to the partial analysis trips result. Your API Key needs to be added to the URL.

durationsHistogramPartialResultLink
string

URL to the partial analysis trips duration histogram result. Your API Key needs to be added to the URL. Only present when tripStats was enabled.

lengthsHistogramPartialResultLink
string

URL to the partial analysis trips lengths histogram result. Your API Key needs to be added to the URL. Only present when tripStats was enabled.

hoursOfDayHistogramPartialResultLink
string

URL to the partial analysis trips hour of day histogram result. Your API Key needs to be added to the URL. Only present when tripStats was enabled.

avgSpeedsHistogramPartialResultLink
string

URL to the partial analysis trips average speeds histogram result. Your API Key needs to be added to the URL. Only present when tripStats was enabled and the average speeds histogram was produced.

tripsResultFileSize
number

Trips result file size in megabytes, as a decimal number. It will help you decide if you want to download the whole or a partial result.

dateRange
object

Date range of the result.

dateRange.startDate
date

Start date of the date range in YYYY-MM-DD format.

dateRange.endDate
date

End date of the date range in YYYY-MM-DD format.

dateRange.exclusions
array

List of dates excluded from the given range in YYYY-MM-DD format.

dateRange.daysOfWeek
array (of strings)

Days of the week of this date range. Only present when the date range declared its own list.

dateRange.name
string

Date range name. Only present when the date range was given one.

timeRange
object

Time range of the result.

timeRange.startTime
string

Start time of the time range in HH:mm format.

timeRange.endTime
string

End time of the time range in HH:mm format.

Errors

If there is an error in the supplied parameters or any other internal problem, an error response is generated in the requested format.

Response codes

Code

Meaning & possible causes

200

OK

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found