Leidos FAA Briefing Service

AeroCopilot's pre-built REST client for the Leidos Flight Service (FFSP) — file flight plans, get briefings, and search routes through the FAA's contracted provider.

Leidos FAA Briefing Service

Leidos Flight Service (FFSP — Federal Flight Services Program) is the FAA's contracted provider of flight plan filing and weather briefings for the contiguous United States. AeroCopilot ships a pre-built client for the Leidos REST API in apps/web/lib/integrations/leidos-service.ts, ready to activate the moment vendor credentials are issued.

Operational status

The client is implemented and deployed, but it is dormant by default. Every method in leidos-service.ts checks isLeidosConfigured() and gracefully returns { available: false } when the required environment variables are absent. This lets the rest of the application stay operational — briefing UI, flight plan UI, and route tools all render a "not configured" state instead of throwing — while we complete vendor onboarding.

The integration is enabled when all three of the following environment variables are set:

  • LEIDOS_BASE_URL
  • LEIDOS_VENDOR_EMAIL
  • LEIDOS_VENDOR_PASSWORD

Authentication is HTTP Basic, with the credential pair Base64-encoded into the Authorization header on every request. Every call carries a 30-second AbortSignal timeout to prevent long hangs against an unresponsive upstream.

What the client supports

The Leidos client groups its methods into three families.

Flight plan operations

MethodEndpoint
fileFlightPlanPOST /rest/FP/file
retrieveFlightPlanGET /rest/FP/{id}/retrieve
amendFlightPlanPOST /rest/FP/{id}/amend
activateFlightPlanPOST /rest/FP/{id}/activate
cancelFlightPlanPOST /rest/FP/{id}/cancel
closeFlightPlanPOST /rest/FP/{id}/close
getFlightPlanSummariesGET /rest/FP/{username}/retrieveFlightPlanSummaries

fileFlightPlan accepts both DOMESTIC and ICAO flight plan formats. Flight rules are normalized — V becomes VFR; I, Y, and Z all become IFR. Wake-turbulence categories are mapped from the single-letter ICAO codes (L, M, H, J) to their full names (LIGHT, MEDIUM, HEAVY, J).

Departure times are serialized to Zulu ISO-8601 with a single decimal of seconds (...0Z). Flight duration and fuel-on-board values supplied as HH:MM strings are converted to ISO-8601 durations (PT{H}H{M}M). Flight-level altitudes prefixed with FL have the prefix stripped before being sent as altitudeTypeF.

The amend operation requires a versionStamp (returned from the prior file or retrieve response) and supports changing route, speed, altitude, departure time, and remarks. The activate operation stamps the actual departure as the current Zulu time. The close operation also requires a versionStamp.

Briefing operations

MethodEndpointPurpose
getRouteBriefingPOST /rest/FP/routeBriefingStandard pre-departure briefing for a specific route
getAreaBriefingPOST /rest/FP/areaBriefingBriefing centered on a fix with a configurable radius (default 50 NM)

Both briefings request briefingType: SIMPLE and plaintext: true, so the response body is human-readable rather than coded. Route briefings inherit the same flight-rules and altitude normalization as flight plan filing.

Utility operations

MethodEndpoint
searchRouteGET /rest/util/routeSearch?departure={dep}&destination={dst}

searchRoute returns suggested routings between two airports, useful when pre-populating flight plan forms.

Response shape

Every Leidos call returns the standard FFSP LeidosResponse envelope, augmented with an available flag. Callers can rely on this shape:

  • available: false — credentials missing; treat the integration as not configured.
  • available: true, returnStatus: true — call succeeded; consume returnMessage, flightIdentifier, versionStamp, or currentState as appropriate.
  • available: true, returnStatus: false — Leidos accepted the request but rejected it on validation; surface returnMessage and returnCodedMessage to the pilot.

Network failures (non-2xx HTTP responses) throw Error("Leidos API error: {status} {statusText}") rather than returning a structured response, so callers should wrap calls in try/catch and present a retry option to the pilot.

Why the integration matters

Leidos is the single point of truth for filed flight plans in the National Airspace System. Wiring AeroCopilot's flight planner into Leidos directly — rather than asking pilots to copy and re-enter their plan into 1800wxbrief.com or another EFB — removes a transcription step and the errors that come with it. It also lets AeroCopilot's pre-flight briefing reflect the same data Flight Service would brief, instead of a parallel approximation.

  • API Library Overview
  • Pre-Flight Briefing Overview
  • Flight Planning