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_URLLEIDOS_VENDOR_EMAILLEIDOS_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
| Method | Endpoint |
|---|---|
fileFlightPlan | POST /rest/FP/file |
retrieveFlightPlan | GET /rest/FP/{id}/retrieve |
amendFlightPlan | POST /rest/FP/{id}/amend |
activateFlightPlan | POST /rest/FP/{id}/activate |
cancelFlightPlan | POST /rest/FP/{id}/cancel |
closeFlightPlan | POST /rest/FP/{id}/close |
getFlightPlanSummaries | GET /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
| Method | Endpoint | Purpose |
|---|---|---|
getRouteBriefing | POST /rest/FP/routeBriefing | Standard pre-departure briefing for a specific route |
getAreaBriefing | POST /rest/FP/areaBriefing | Briefing 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
| Method | Endpoint |
|---|---|
searchRoute | GET /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; consumereturnMessage,flightIdentifier,versionStamp, orcurrentStateas appropriate.available: true, returnStatus: false— Leidos accepted the request but rejected it on validation; surfacereturnMessageandreturnCodedMessageto 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.
Related
- API Library Overview
- Pre-Flight Briefing Overview
- Flight Planning