Quick reference
A one-page reference for GEM commands, endpoints, and common operations.
API endpoints
Private Data Gateway API
| Method | Endpoint | Description |
|---|
GET | /maps/orbis/platform/private-gateway/storages | List all storages |
GET | /maps/orbis/platform/private-gateway/storages/{id} | Get storage details |
GET | /maps/orbis/platform/private-gateway/storages/{id}/credentials | Get storage credentials |
Base URL: https://api.tomtom.com
GEM API
| Method | Endpoint | Description |
|---|
POST | /maps/orbis/platform/gem/jobs | Create matching job |
GET | /maps/orbis/platform/gem/jobs | List all jobs |
GET | /maps/orbis/platform/gem/job/{job_run_id} | Get job details |
Base URL: https://api.tomtom.com
-H "tomtom-api-key: YOUR_API_KEY"
-H "Authorization: Bearer YOUR_AUTH_TOKEN"
# GEM API only (add this header)
# POST requests (add this 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
# Login with service principal (from GEM UI credentials)
az login --service-principal \
--password <CLIENT_SECRET> \
Data upload
--account-name <STORAGE_ACCOUNT> \
--container-name <CONTAINER> \
--name <FILENAME>.parquet \
--file /path/to/local/file.parquet \
Results download
az storage blob download \
--account-name <STORAGE_ACCOUNT> \
--container-name <CONTAINER> \
--name predictions.parquet \
--file /path/to/destination/predictions.parquet \
Input data schema
| Field | Type | Required | Description |
|---|
id | integer | ✅ | Unique road segment identifier |
is_navigable | boolean | ✅ | Whether road is navigable |
geometry | string (WKT) | ✅ | LineString geometry |
Example:
{"id": 5707295, "is_navigable": true, "geometry": "LINESTRING (4.89 52.37, 4.90 52.38)"}
Output data schema
| Field | Type | Description |
|---|
id | integer | Your original road segment ID |
gers_id | string | Matched GERS ID |
confidence | float | Match confidence (0.0 - 1.0) |
match_type | string | full, partial, or none |
linear_ref_start | float | Start position (meters) |
linear_ref_end | float | End position (meters) |
Job statuses
| Status | Meaning | Action |
|---|
queued | Waiting to start | Wait |
running | Processing | Monitor |
completed | Finished successfully | Download results |
failed | Error occurred | Check logs, contact support |
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" \
"storageId": "storage-001",
"inputFileName": "my_data.parquet",
Check job status
curl -X GET "https://api.tomtom.com/maps/orbis/platform/gem/job/$JOB_ID" \
-H "tomtom-api-key: $API_KEY" \
-H "Authorization: Bearer $TOKEN" \
Processing time estimates
| Dataset size | Estimated time |
|---|
| < 10,000 roads | Minutes |
| 10,000 - 100,000 | 1-2 hours |
| 100,000 - 1M | 10-15 hours |
| > 1M roads | Contact support |
Rate limits
- Default: 10 requests per second
- Exceeded: Returns
429 Too Many Requests
Quality thresholds
| Match rate | Quality |
|---|
| > 85% | Excellent |
| 70-85% | Good |
| < 70% | Review data quality |
Error codes
| Code | Meaning | Solution |
|---|
401 | Unauthorized | Check API key and token |
403 | Forbidden | Verify permissions |
404 | Not found | Check resource ID |
422 | Invalid request | Validate input parameters |
429 | Rate limited | Wait and retry |
Key URLs
File checklist
Before uploading, verify: