Logistics
Geo Entities
A geo entity is any trackable object — a driver, vehicle, package, or custom type. Entities hold a current position, status, and optional metadata. All routes live under /logistics/* and require a token with logistics:read or logistics:write scope.
Create Entity
GET
typescript
const entity = await ss.logistics.geo.create({
type: 'driver',
name: 'Alice',
external_id: 'drv-001',
})
- Open Dashboard and select your project
- Go to Geo in the sidebar
- Click Add Entity, fill in type, name, and optional metadata
- Click Create
Body field
Type
Description
type requiredstring
Entity type label (1–64 chars, e.g.
driver, vehicle)name requiredstring
Display name (1–256 chars)
external_idstring
Your own ID for cross-referencing (max 256 chars)
statusstring
Initial status label (max 64 chars). Default
active.latnumber
Initial latitude (−90 to 90)
lngnumber
Initial longitude (−180 to 180)
callback_urlstring (URL)
Webhook URL for geofence events (max 2048 chars)
metadataobject
Arbitrary key-value metadata
Error responses
400 Invalid body (validation error)
401 Unauthorized
402 Insufficient Tokens
403 Forbidden
429 Rate Limited
List Entities
GET
typescript
const result = await ss.logistics.geo.list({ type: 'driver', status: 'active', limit: 50 })
- Open Dashboard and select your project
- Go to Geo to see all entities with filters for type and status
Query param
Type
Description
typestring
Filter by entity type
statusstring
Filter by status
limitinteger
Results per page (1–100). Default
25.cursorstring
Pagination cursor from previous response
Error responses
401 Unauthorized
402 Insufficient Tokens
429 Rate Limited
Nearby Search
GET
typescript
const nearby = await ss.logistics.geo.nearby({
lat: 40.7128, lng: -74.0060,
radius_km: 5, type: 'driver',
})
- Open Dashboard and select your project
- Go to Geo and click Nearby Search
- Click a point on the map or enter coordinates and radius
- Matching entities are highlighted on the map
Query param
Type
Description
lat requirednumber
Center latitude (−90 to 90)
lng requirednumber
Center longitude (−180 to 180)
radius_kmnumber
Search radius in km (0.1–100). Default
10.typestring
Filter by entity type
statusstring
Filter by status
limitinteger
Max results (1–100). Default
20.Error responses
400 Invalid coordinates or radius
401 Unauthorized
402 Insufficient Tokens
429 Rate Limited
Get Entity
GET
typescript
const entity = await ss.logistics.geo.get('ent_abc123')
- Open Dashboard and select your project
- Go to Geo and click on any entity to view its details, position, and metadata
Path param
Type
Description
entity_id requiredstring
Entity ID
Error responses
401 Unauthorized
402 Insufficient Tokens
404 Not Found
429 Rate Limited
Update Entity
GET
typescript
await ss.logistics.geo.update('ent_abc123', { status: 'inactive' })
- Open Dashboard and select your project
- Go to Geo and click on an entity
- Edit the fields you want to change and click Save
Path param
Type
Description
entity_id requiredstring
Entity ID
Body field
Type
Description
namestring
Updated display name (1–256 chars)
typestring
Updated entity type (1–64 chars)
external_idstring
Updated external ID (max 256 chars)
statusstring
Updated status (max 64 chars)
latnumber
Updated latitude (−90 to 90)
lngnumber
Updated longitude (−180 to 180)
callback_urlstring (URL)
Updated webhook URL (max 2048 chars)
metadataobject
Updated key-value metadata (replaces existing)
Error responses
400 Invalid body (validation error)
401 Unauthorized
402 Insufficient Tokens
403 Forbidden
404 Not Found
429 Rate Limited
Deactivate Entity
GET
typescript
await ss.logistics.geo.deactivate('ent_abc123')
- Open Dashboard and select your project
- Go to Geo and click on the entity
- Click Deactivate to mark the entity as inactive
Path param
Type
Description
entity_id requiredstring
Entity ID to deactivate
Error responses
401 Unauthorized
403 Forbidden
404 Not Found
429 Rate Limited