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
2-H "tomtom-api-key: YOUR_API_KEY"
3-H "Authorization: Bearer YOUR_AUTH_TOKEN"
5# GEM API only (add this header)
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
4# Login with service principal (from GEM UI credentials)
5az login --service-principal \
6 --username <CLIENT_ID> \
7 --password <CLIENT_SECRET> \
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 \
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 \
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
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" \
7 "storageId": "storage-001",
8 "inputFileName": "my_data.parquet",
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" \
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: