Skip to main content
The MilitaryService provides APIs for tracking military aircraft from OpenSky and Wingbits, retrieving military base data, accessing USNI Fleet intelligence reports, and assessing theater-level military posture.

Base Path

/api/military/v1

ListMilitaryFlights

Retrieves tracked military aircraft from OpenSky and Wingbits within a geographic bounding box, with optional filtering by operator and aircraft type. Endpoint: GET /api/military/v1/list-military-flights

Request Parameters

page_size
int32
Maximum items per page (1-100)
cursor
string
Cursor for next page
ne_lat
double
North-east corner latitude of bounding box
ne_lon
double
North-east corner longitude of bounding box
sw_lat
double
South-west corner latitude of bounding box
sw_lon
double
South-west corner longitude of bounding box
operator
MilitaryOperator
Optional operator filter (e.g., MILITARY_OPERATOR_USAF, MILITARY_OPERATOR_RAF)
aircraft_type
MilitaryAircraftType
Optional aircraft type filter (e.g., MILITARY_AIRCRAFT_TYPE_FIGHTER, MILITARY_AIRCRAFT_TYPE_TANKER)

Response

flights
MilitaryFlight[]
Individual military flights
clusters
MilitaryFlightCluster[]
Geographic clusters of flights
pagination
PaginationResponse
Pagination metadata

Example Request

curl "https://your-domain.com/api/military/v1/list-military-flights?ne_lat=55.0&ne_lon=15.0&sw_lat=45.0&sw_lon=5.0&operator=MILITARY_OPERATOR_USAF&page_size=50"

GetTheaterPosture

Retrieves military posture assessments for geographic theaters, providing strategic-level situational awareness. Endpoint: GET /api/military/v1/get-theater-posture

Request Parameters

theater
string
Theater name (e.g., “indo-pacific”, “european”, “middle-east”). Empty returns all theaters.

Response

theaters
TheaterPosture[]
Theater posture assessments (one per theater, or all if no filter)

Example Request

curl "https://your-domain.com/api/military/v1/get-theater-posture?theater=indo-pacific"

GetAircraftDetails

Retrieves Wingbits aircraft enrichment data for a single ICAO24 hex, providing detailed aircraft information. Endpoint: GET /api/military/v1/get-aircraft-details

Request Parameters

icao24
string
required
ICAO 24-bit hex address (lowercase)

Response

details
AircraftDetails
Aircraft details, absent if not found
configured
bool
Whether the Wingbits API is configured

Example Request

curl "https://your-domain.com/api/military/v1/get-aircraft-details?icao24=ae01ce"

GetAircraftDetailsBatch

Retrieves Wingbits aircraft enrichment data for multiple ICAO24 hexes in a single request. Endpoint: POST /api/military/v1/get-aircraft-details-batch

Request Body

icao24s
string[]
required
Array of ICAO 24-bit hex addresses (lowercase)

Response

details
map<string, AircraftDetails>
Map of ICAO24 hex to aircraft details
configured
bool
Whether the Wingbits API is configured

Example Request

curl -X POST "https://your-domain.com/api/military/v1/get-aircraft-details-batch" \
  -H "Content-Type: application/json" \
  -d '{"icao24s": ["ae01ce", "ae04e2", "ae0443"]}'

GetWingbitsStatus

Checks whether the Wingbits enrichment API is configured and available. Endpoint: GET /api/military/v1/get-wingbits-status

Request Parameters

No parameters required.

Response

configured
bool
Whether the Wingbits API is configured with valid credentials
status
string
Status message

Example Request

curl "https://your-domain.com/api/military/v1/get-wingbits-status"

GetUSNIFleetReport

Retrieves the latest parsed USNI Fleet Tracker report with information about U.S. Navy carrier strike groups and deployments. Endpoint: GET /api/military/v1/get-usni-fleet-report

Request Parameters

force_refresh
bool
When true, bypass cache and fetch fresh data from USNI

Response

report
USNIFleetReport
The parsed fleet report, if available
cached
bool
Whether the response was served from cache
stale
bool
Whether the cached data is stale (served after a fetch failure)
error
string
Error message, if any

Example Request

curl "https://your-domain.com/api/military/v1/get-usni-fleet-report?force_refresh=true"

ListMilitaryBases

Retrieves military bases within a bounding box with server-side clustering for map visualization. Endpoint: GET /api/military/v1/list-military-bases

Request Parameters

ne_lat
double
North-east corner latitude of bounding box
ne_lon
double
North-east corner longitude of bounding box
sw_lat
double
South-west corner latitude of bounding box
sw_lon
double
South-west corner longitude of bounding box
zoom
int32
Map zoom level for clustering threshold
type
string
Optional base type filter
kind
string
Optional base kind filter
country
string
Optional country filter (ISO 3166-1 alpha-2)

Response

bases
MilitaryBaseEntry[]
Individual military bases in the view
clusters
MilitaryBaseCluster[]
Geographic clusters of bases
total_in_view
int32
Total bases in the bounding box
truncated
bool
Whether results were truncated

Example Request

curl "https://your-domain.com/api/military/v1/list-military-bases?ne_lat=50.0&ne_lon=10.0&sw_lat=40.0&sw_lon=0.0&zoom=6"

Build docs developers (and LLMs) love