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/job/{job_run_id}Get job details

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

Required headers

1# All API requests
2-H "tomtom-api-key: YOUR_API_KEY"
3-H "Authorization: Bearer YOUR_AUTH_TOKEN"
4
5# GEM API only (add this header)
6-H "X-Version: 1"
7
8# POST requests (add this header)
9-H "Content-Type: application/json"

Azure CLI commands

Authentication

1# Get authorization token
2az account get-access-token --scope https://gem.core.orbis.tomtom.com/user_impersonation
3
4# Login with service principal (from GEM UI credentials)
5az login --service-principal \
6 --username <CLIENT_ID> \
7 --password <CLIENT_SECRET> \
8 --tenant <TENANT_ID>

Data upload

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

Results download

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

Input data schema

FieldTypeRequiredDescription
idintegerUnique 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
idintegerYour original road segment ID
gers_idstringMatched GERS ID
confidencefloatMatch confidence (0.0 - 1.0)
match_typestringfull, partial, or none
linear_ref_startfloatStart position (meters)
linear_ref_endfloatEnd position (meters)

Job statuses

StatusMeaningAction
queuedWaiting to startWait
runningProcessingMonitor
completedFinished successfullyDownload results
failedError occurredCheck logs, contact support

Common curl examples

List storages

1curl -X GET "https://api.tomtom.com/maps/orbis/platform/private-gateway/storages" \
2 -H "tomtom-api-key: $API_KEY" \
3 -H "Authorization: Bearer $TOKEN"

Get storage credentials

1curl -X GET "https://api.tomtom.com/maps/orbis/platform/private-gateway/storages/$STORAGE_ID/credentials" \
2 -H "tomtom-api-key: $API_KEY" \
3 -H "Authorization: Bearer $TOKEN"

Create matching job

1curl -X POST "https://api.tomtom.com/maps/orbis/platform/gem/jobs" \
2 -H "tomtom-api-key: $API_KEY" \
3 -H "Authorization: Bearer $TOKEN" \
4 -H "Content-Type: application/json" \
5 -H "X-Version: 1" \
6 -d '{
7 "storageId": "storage-001",
8 "inputFileName": "my_data.parquet",
9 "matchingType": "road"
10 }'

Check job status

1curl -X GET "https://api.tomtom.com/maps/orbis/platform/gem/job/$JOB_ID" \
2 -H "tomtom-api-key: $API_KEY" \
3 -H "Authorization: Bearer $TOKEN" \
4 -H "X-Version: 1"

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

Key URLs

File checklist

Before uploading, verify:

  • File format is .parquet
  • Contains id column (integer, unique)
  • Contains is_navigable column (boolean)
  • Contains geometry column (WKT LineString)
  • No null values in required fields
  • Geometries are valid WKT format