PUT /api/v1/entities
The single endpoint UAMKT software publishes against. Every track, control area, sensor, and habitat profile we emit arrives here.
Example request.
PUT /api/v1/entities
Authorization: Bearer <sandbox-token>
Content-Type: application/json
{
"entityId": "track-bird-RKSI-39214",
"expiryTime": "2026-04-26T03:31:00Z",
"isLive": true,
"ontology": {
"platform_type": "Animal",
"template": "TEMPLATE_TRACK"
},
"milView": {
"disposition": "NEUTRAL",
"environment": "ENVIRONMENT_AIR"
},
"location": {
"position": {
"latitudeDegrees": 37.4602,
"longitudeDegrees": 126.4407,
"altitudeHaeMeters": 230
}
},
"_uamkt_extensions": {
"doctrine_ref": "ICAO Doc 9332"
}
}Sandbox token expires 2026-06-03 · refresh via OAuth client_credentials
5 mandatory field rules.
- 01disposition
FRIENDLY · HOSTILE · UNKNOWN · NEUTRAL — last is the April 2026 official addition for Animal/non-military.
- 02template
TEMPLATE_ASSET/RADAR · TEMPLATE_GEO/CONTROL_AREA · TEMPLATE_TRACK · TEMPLATE_SENSOR_POINT_OF_INTEREST.
- 03environment
ENVIRONMENT_AIR | LAND | SURFACE | SUBSURFACE | SPACE — recommended within milView.
- 04altitude
altitudeAglMeters (low-altitude / ground reference) OR altitudeHaeMeters (HAE / Animal / high-altitude) — pick one.
- 05expiry
Top-level expiryTime as ISO string. NOT nested as expiry.expiryTime — that shape returns 4xx.
Responses.
HTTP/1.1 200 OK
Content-Type: application/json
{
"entityId": "track-bird-RKSI-39214",
"version": 12,
"publishedAt": "2026-04-26T03:30:14.302Z"
}HTTP/1.1 405 Method Not Allowed
# DELETE is not supported on this resource.
# Soft-delete: PUT with isLive=false + epoch expiryTime.Status codes.
- 200
Entity accepted and indexed.
- 400
Schema violation — typically a missing or misnested required field.
- 401
Token expired or missing. Refresh via OAuth client_credentials flow.
- 405
Method not allowed — DELETE is rejected. Soft-delete pattern applies.
- 409
entityId conflict — different ontology or template than the prior version.
- 5xx
Lattice-side issue — retry with exponential backoff.