Global Entity Matcher (GEM)

Create matching job

Request access

Purpose

Submit a new matching job to process your uploaded data and align it with GERS identifiers.

Request data

HTTP method: POST

  • See the following Request body section with the required and optional parameters tables for these values.

URL format

post
URL format
https://api.tomtom.com/maps/orbis/platform/gem/jobs

URL example

post
URL example
https://api.tomtom.com/maps/orbis/platform/gem/jobs

curl command example

post
curl command example
curl -X POST "https://api.tomtom.com/maps/orbis/platform/gem/jobs" \
-H "tomtom-api-key: YOUR_API_KEY" \
-H "Authorization: Bearer YOUR_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"storage_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"filename": "your_data.parquet",
"job_type": "ROAD_MATCHING",
"overture_release": "2026-01-21.0"
}'

Request headers

HeaderRequiredDescription
tomtom-api-keyYesYour TomTom API key
AuthorizationYesBearer token from Azure CLI
Content-TypeYesMust be application/json

Request body

{
"storage_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"filename": "your_data.parquet",
"job_type": "<type-of-job>",
"overture_release": "<overture-release-version>"
}

Request body parameters

ParameterTypeRequiredDescription
storage_idstring (uuid)YesID of the storage containing your data
filenamestringYesPath of the input file in the storage, exactly as List storage files returns it in files[].path, for example input/my_roads.parquet. Case-sensitive. Accepted extensions: .parquet (both job types) or .csv (LANE_LEVEL_MATCHING only)
job_typestringYesType of matching to perform: ROAD_MATCHING or LANE_LEVEL_MATCHING
overture_releasestringOnly if job_type is ROAD_MATCHINGExisting Overture Maps release in the format YYYY-MM-DD.N, for example 2026-01-21.0. See Releases
with_visualization_databooleanNoROAD_MATCHING only. When true, GEM also writes GeoJSON files for viewing the matches, see Visualization data. Default: false

Response data

A successful request returns HTTP status 201 Created with the job details, and a Location header with the URL of the new job. A new job has status REQUESTED.

Response example

{
"job_type": "ROAD_MATCHING",
"overture_release": "2026-01-21.0",
"input_filename": "test_data.parquet",
"job_id": 123456789,
"requested_at": "2026-02-18T10:38:59.031762Z",
"result_filename": null,
"statistics": null,
"error_messages": null,
"status": "REQUESTED",
"storage_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}

Response fields

FieldTypeDescription
job_idinteger (int64)Unique identifier for the job
storage_idstring (uuid)Storage where input/output files are located
input_filenamestringName of the input file
result_filenamestringPath of the results file in the storage. null until status is SUCCESS
job_typestringType of matching performed
overture_releasestringOverture Maps release version for ROAD_MATCHING jobs, see Releases
statusstringCurrent job status. See Job status values
requested_atstringISO 8601 timestamp of job creation
statisticsobjectMatching statistics of successful ROAD_MATCHING jobs, see Get job details. Otherwise null
error_messagesstring[]List of error messages describing why the job failed. null unless status is FAILED

Job status values

StatusDescription
REQUESTEDJob was requested and is waiting to be processed
IN_PROGRESSJob has started and is currently being executed
FAILEDJob encountered an error during the execution. See error_messages
SUCCESSJob finished successfully
CANCELEDJob was canceled before completion

Error responses

HTTP StatusErrorCauseSolution
400Bad RequestOne of provided arguments is not valid.: the request body is malformed, or a required field is missing or has a wrong valueCheck the JSON format and the required fields
400Bad RequestFile extension '.<ext>' is not supported for job type '<job_type>'. Allowed extensions: <extensions>.Use a .parquet file, or a .csv file for LANE_LEVEL_MATCHING
400Bad RequestInput file '<filename>' was not found in the storage location.Upload the file first, and use its exact path from List storage files
400Bad RequestOverture release '<release>' does not exist. Latest available releases: [...]Use one of the listed releases
401UnauthorizedInvalid credentialsRefresh API key or token
409ConflictA job with the same parameters is already in progress: <job_id>. A job for the same storage, input file, job type, and Overture release is still REQUESTED or IN_PROGRESS.Wait for that job to finish, or cancel it
500Internal Server ErrorServer-side issueRetry the request
503Service UnavailableJob submission failed due to a temporary issue. Please try again.Retry the request