Download OpenAPI specification:
REST API for managing object lifecycle and real-time updates in the Raft Warfighting Data Model (WDM). Provides operations for creating, updating, querying, and streaming objects representing tracked things in the battlespace (platforms, units, facilities, personnel, equipment, events, control measures, signals, etc.).
Note: Streaming APIs (PublishObjects, StreamObjects) are only available via gRPC and are not supported over standard REST/HTTP at this time.
Upsert operation for objects. If object.id is provided and exists, performs an update; otherwise creates a new object with a generated UUID.
This single endpoint handles all object lifecycle operations:
Request body for creating or updating an object. Note: The 'ontology' field is read-only and will be ignored if provided.
required | object (v1Object) Core warfighting representation of a tracked object in the battlespace. An Object is anything with identity that the force needs to track: platforms, units, facilities, equipment, personnel, events, control measures, signals, and more. Flexible Field ModelMost fields are optional - populate only what is relevant for the specific object being represented. This flexibility allows modeling diverse object types without requiring separate message definitions for each category. Different object types naturally use different field subsets. For example:
Required vs Optional FieldsMinimally required for all objects:
Commonly populated but optional:
Domain-specific (populate as applicable):
Field Population Guidelines
|
{- "object": {
- "assessment": {
- "affiliation": "AFFILIATION_FRIEND",
- "environment": "ENVIRONMENT_SURFACE",
- "nationality": "USA"
}, - "description": "Arleigh Burke-class guided missile destroyer",
- "dimensions": {
- "height_meters": 30,
- "length_meters": 155,
- "width_meters": 20
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "identities": [
- {
- "identifier": "366987000",
- "system": "ais"
}, - {
- "identifier": "366987000",
- "system": "mmsi"
}
], - "labels": {
- "fleet": "7th Fleet",
- "platform.class": "DDG-51",
- "platform.hull": "DDG-51"
}, - "location": {
- "orientation": {
- "heading_degrees": 45
}, - "position": {
- "altitude_hae_meters": 0,
- "altitude_msl_meters": 0,
- "latitude_degrees": 35.285,
- "longitude_degrees": 139.777
}
}, - "motion": {
- "velocity_enu_mps": {
- "x": 10.9,
- "y": 10.9,
- "z": 0
}
}, - "name": "USS Arleigh Burke (DDG-51)",
- "provenance": {
- "name": "ais-receiver-01",
- "updated_at": "2024-01-15T10:30:00Z"
}, - "status": "OBJECT_STATUS_ACTIVE",
- "type_info": {
- "maritime": {
- "mmsi": "366987000"
}
}
}
}{- "object": {
- "assessment": {
- "affiliation": "AFFILIATION_FRIEND",
- "environment": "ENVIRONMENT_SURFACE",
- "nationality": "USA"
}, - "description": "Alpha Co 1st platoon lead tank",
- "dimensions": {
- "heightMeters": 2.44,
- "lengthMeters": 9.77,
- "widthMeters": 3.66
}, - "id": "7f3e9b20-4c8a-4d5e-9f1b-2a3c4d5e6f70",
- "identities": [
- {
- "identifier": "A-11",
- "system": "bumper"
}
], - "labels": {
- "unit.echelon": "platoon",
- "unit.parent": "A/1-66-AR"
}, - "location": {
- "orientation": {
- "headingDegrees": 90
}, - "position": {
- "altitudeHaeMeters": 42,
- "latitudeDegrees": 33.2104,
- "longitudeDegrees": 44.1234
}
}, - "motion": {
- "velocityEnuMps": {
- "x": 6.2,
- "y": 0.8,
- "z": 0
}
}, - "name": "A-11",
- "provenance": {
- "name": "blue-force-tracker-03",
- "updatedAt": "2026-04-15T10:30:00Z"
}, - "status": "OBJECT_STATUS_ACTIVE",
- "typeInfo": {
- "ground": {
- "cover": "COVER_STATUS_EXPOSED",
- "movement": "MOVEMENT_STATUS_MOVING",
- "platformType": "M1A2_SEPv3",
- "terrain": "TERRAIN_TYPE_DESERT"
}
}
}
}Retrieves a paginated list of objects matching the specified filter criteria. Returns a snapshot at query time. For real-time updates, use StreamObjects.
Request message for retrieving multiple objects.
object (serviceObjectQuery) Query criteria for retrieving objects from storage. Uses a flat structure where all criteria are combined with AND logic between fields, and OR logic within repeated fields. Optimized for efficient bulk retrieval. Empty query returns all objects. For complex filtering (geographic bounding boxes, labels, nested boolean logic), stream objects and use ObjectStreamFilter instead. Logic semantics:
Note: affiliation and environment filters traverse into the object's
Examples: Query hostile objects:
Matches: Query surface entities positively identified as friendly:
Matches: Query non-simulated surface objects:
Query objects from specific sources:
Query objects updated recently:
| |
| cursor | string Pagination cursor from previous response. Omit or leave empty for first page. |
| pageSize | integer <int32> <= 1000 Default: "10" Maximum number of objects per page. |
{- "pageSize": 100,
- "query": {
- "affiliations": [
- "AFFILIATION_FRIEND"
], - "statuses": [
- "OBJECT_STATUS_ACTIVE"
]
}
}{- "nextCursor": "a2919858-75bf-42c4-8850-2bbb2b94d154",
- "objects": [
- {
- "assessment": {
- "affiliation": "AFFILIATION_FRIEND",
- "environment": "ENVIRONMENT_SURFACE",
- "nationality": "USA"
}, - "dimensions": {
- "heightMeters": 30,
- "lengthMeters": 155,
- "widthMeters": 20
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "identities": [
- {
- "identifier": "366987000",
- "system": "mmsi"
}
], - "location": {
- "orientation": {
- "headingDegrees": 45
}, - "position": {
- "latitudeDegrees": 35.285,
- "longitudeDegrees": 139.777
}
}, - "motion": {
- "velocityEnuMps": {
- "x": 10.9,
- "y": 10.9,
- "z": 0
}
}, - "name": "USS Arleigh Burke (DDG-51)",
- "provenance": {
- "name": "ais-receiver-01",
- "updatedAt": "2026-04-15T10:30:00Z"
}, - "status": "OBJECT_STATUS_ACTIVE",
- "typeInfo": {
- "maritime": {
- "flagState": "USA",
- "mmsi": "366987000",
- "navStatus": "NAVIGATION_STATUS_UNDERWAY",
- "vesselType": "VESSEL_TYPE_MILITARY"
}
}
}, - {
- "assessment": {
- "affiliation": "AFFILIATION_FRIEND",
- "environment": "ENVIRONMENT_HIGH_ALTITUDE",
- "nationality": "USA"
}, - "id": "b12c8400-e29b-41d4-a716-446655440099",
- "identities": [
- {
- "identifier": "AE1234",
- "system": "mode_s"
}, - {
- "identifier": "RAZOR21",
- "system": "callsign"
}
], - "location": {
- "position": {
- "altitudeHaeMeters": 9144,
- "latitudeDegrees": 35.45,
- "longitudeDegrees": 139.55
}
}, - "motion": {
- "velocityEnuMps": {
- "x": 180,
- "y": 60,
- "z": 2.5
}
}, - "name": "RAZOR-21",
- "provenance": {
- "name": "adsb-gateway",
- "updatedAt": "2026-04-15T10:30:05Z"
}, - "status": "OBJECT_STATUS_ACTIVE",
- "typeInfo": {
- "aviation": {
- "aircraftType": "F-15E",
- "icaoType": "F15",
- "registration": "89-0487",
- "verticalMode": "VERTICAL_MODE_CLIMBING"
}
}
}
]
}Retrieves a single object by its UUID.
| objectId required | string UUID of the object to retrieve |
{- "object": {
- "assessment": {
- "affiliation": "AFFILIATION_HOSTILE",
- "environment": "ENVIRONMENT_HIGH_ALTITUDE",
- "nationality": "RUS"
}, - "description": "Hostile fighter tracked by AESA radar",
- "id": "3b1d4f72-9e5a-4f8c-b123-5c6d7e8f9010",
- "identities": [
- {
- "identifier": "47210",
- "system": "link16_track"
}
], - "location": {
- "orientation": {
- "headingDegrees": 270
}, - "position": {
- "altitudeHaeMeters": 11500,
- "latitudeDegrees": 36.12,
- "longitudeDegrees": 42.88
}
}, - "motion": {
- "velocityEnuMps": {
- "x": -240,
- "y": 15,
- "z": 0
}
}, - "name": "TRACK-4721",
- "provenance": {
- "name": "aegis-radar-07",
- "updatedAt": "2026-04-15T10:30:10Z"
}, - "status": "OBJECT_STATUS_ACTIVE",
- "typeInfo": {
- "aviation": {
- "aircraftType": "Su-35S",
- "icaoType": "SU35",
- "verticalMode": "VERTICAL_MODE_LEVEL"
}
}
}
}