Global Entity Matcher (GEM)

Quick reference

Request access

Quick reference

A one-page reference for GEM commands, endpoints, and common operations.

API endpoints

Private Data Gateway API

MethodEndpointDescription
GET/maps/orbis/platform/private-gateway/storagesList all storages
GET/maps/orbis/platform/private-gateway/storages/{id}Get storage details
GET/maps/orbis/platform/private-gateway/storages/{id}/credentialsGet storage credentials

Base URL: https://api.tomtom.com

GEM API

MethodEndpointDescription
POST/maps/orbis/platform/gem/jobsCreate matching job
GET/maps/orbis/platform/gem/jobsList all jobs
GET/maps/orbis/platform/gem/jobs/{job_id}Get job details

Base URL: https://api.tomtom.com

Required headers

Every API request must include:

-H "tomtom-api-key: YOUR_API_KEY"
-H "Authorization: Bearer YOUR_AUTH_TOKEN"

For POST HTTP method, include the Content-Type header:

-H "Content-Type: application/json"

Azure CLI commands

Authentication

Get authorization token

az account get-access-token --scope https://gem.core.orbis.tomtom.com/user_impersonation

Authorize to access storage with obtained credentials

az login --service-principal \
--username <CLIENT_ID> \
--password <CLIENT_SECRET> \
--tenant <TENANT_ID>

Data upload

az storage blob upload \
--account-name <STORAGE_ACCOUNT> \
--container-name <CONTAINER> \
--name <FILENAME>.parquet \
--file /path/to/local/file.parquet \
--auth-mode login

Results download

az storage blob download \
--account-name <STORAGE_ACCOUNT> \
--container-name <CONTAINER> \
--name predictions.parquet \
--file /path/to/destination/predictions.parquet \
--auth-mode login

Input data schema

FieldTypeRequiredDescription
idinteger or stringUnique road segment identifier
is_navigablebooleanWhether road is navigable
geometrystring (WKT)LineString geometry

Example:

{"id": 5707295, "is_navigable": true, "geometry": "LINESTRING (4.89 52.37, 4.90 52.38)"}

Output data schema

FieldTypeDescription
idstringYour original road segment ID
gersstringMatched GERS ID (UUID format)
confidenceintegerMatch confidence score (0-100)
lr_idstringLinear reference: coordinates and GERS ID
lr_gersstringLinear reference: distance range and original ID

Example:

{"id":"abc","gers":"550e8400-e29b-41d4-a716-446655440000","confidence":99,"lr_id":"52.0197-76.36744#550e8400-e29b-41d4-a716-446655440000","lr_gers":"0.0-100.0#abc"}

Job statuses

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
SUCCESSJob finished successfully

Common curl examples

List storages

curl -X GET "https://api.tomtom.com/maps/orbis/platform/private-gateway/storages" \
-H "tomtom-api-key: $TOMTOM_API_KEY" \
-H "Authorization: Bearer $AUTH_TOKEN"

Get storage credentials

curl -X GET "https://api.tomtom.com/maps/orbis/platform/private-gateway/storages/$STORAGE_ID/credentials" \
-H "tomtom-api-key: $TOMTOM_API_KEY" \
-H "Authorization: Bearer $AUTH_TOKEN"

Create matching job

curl -X POST "https://api.tomtom.com/maps/orbis/platform/gem/jobs" \
-H "tomtom-api-key: $TOMTOM_API_KEY" \
-H "Authorization: Bearer $AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"storage_id": "storage-001",
"filename": "my_data.parquet",
"job_type": "ROAD_MATCHING",
"overture_release": "2026-01-21.0"
}'

Check job status

curl -X GET "https://api.tomtom.com/maps/orbis/platform/gem/jobs/$JOB_ID" \
-H "tomtom-api-key: $TOMTOM_API_KEY" \
-H "Authorization: Bearer $TOKEN"

Processing time estimates

Dataset sizeEstimated time
< 10,000 roadsMinutes
10,000 - 100,0001-2 hours
100,000 - 1M10-15 hours
> 1M roadsContact support

Rate limits

  • Default: 10 requests per second
  • Exceeded: Returns 429 Too Many Requests

Quality thresholds

Match rateQuality
> 85%Excellent
70-85%Good
< 70%Review data quality

Error codes

CodeMeaningSolution
401UnauthorizedCheck API key and token
403ForbiddenVerify permissions
404Not FoundCheck resource ID
422Invalid requestValidate input parameters
429Rate limitedWait and retry

Resources