Send a route. Get RAIM, NOTAMs and weather back.
One flight in, plain answers out: will RAIM hold, which NOTAMs matter, what weather it meets. For flight planning software, dispatch, and apps built with AI.
- RAIMAvailable
- NOTAMsBeta
- WeatherBeta
- AirspaceBeta
- Flight planningBeta
- Airports and routesBeta
- AlertsBeta
Coverage: RAIM, METAR and TAF worldwide. NOTAMs, routes and en-route weather: fullest in the United States for now.
Three endpoints
- POST /v1/raim/routeAvailable
- POST /v1/notams/routeBeta
- POST /v1/weather/routeBeta
{
"route": "KMSP DWN6.ABR J158 RAP MBW MTU J148 OAL.MOD5 KSFO",
"departure": "2026-10-08T23:00:00Z",
"speed_kt": 450,
"cruise_fl": 350
}Same body for all three. Optional: a departure window for RAIM, category filters for NOTAMs.
First line of each response
/v1/raim/route
"RAIM is available along the whole route for the planned departure 23:00Z and for every departure from 22:00Z to 9 Oct 00:00Z."
/v1/notams/route
"82 NOTAMs along the route, in force 8 Oct 23:00Z to 9 Oct 02:11Z: 19 crossing the corridor, 57 abeam, 6 at the route's aerodromes, 0 FIR-wide."
/v1/weather/route
"1436 NM, 08 23:00Z to 09 02:11Z. 1 hazard(s) affect the flight: IFR conditions (G-AIRMET SIERRA 1E IFR +12h) abeam from 1431 NM, 02:10Z at 9222 ft. 4 more meet the corridor but not the aircraft's time or level. departure KMSP: METAR VFR, TAF worst VFR around 23:00Z. destination KSFO: METAR VFR, TAF worst VFR around 02:11Z. 2 pilot report(s) near the track."
Response /v1/raim/route, the start of it
{
"summary": "RAIM is available along the whole route for the planned departure 23:00Z and for every departure from 22:00Z to 9 Oct 00:00Z.",
"dispatch": {
"ok": true
},
"window": {
"clean_pct": 100,
"slack_minutes": {
"early": 60,
"late": 60
}
}
}Response /v1/notams/route, the start of it
{
"summary": "82 NOTAMs along the route, in force 8 Oct 23:00Z to 9 Oct 02:11Z: 19 crossing the corridor, 57 abeam, 6 at the route's aerodromes, 0 FIR-wide.",
"meta": {
"total": 89,
"returned": 82,
"duplicates_collapsed": 7,
"truncated": false
}
}Response /v1/weather/route, the start of it
{
"summary": "1436 NM, 08 23:00Z to 09 02:11Z. 1 hazard(s) affect the flight: IFR conditions (G-AIRMET SIERRA 1E IFR +12h) abeam from 1431 NM, 02:10Z at 9222 ft. 4 more meet the corridor but not the aircraft's time or level. departure KMSP: METAR VFR, TAF worst VFR around 23:00Z. destination KSFO: METAR VFR, TAF worst VFR around 02:11Z. 2 pilot report(s) near the track.",
"flight": {
"length_nm": 1436.4,
"duration_min": 191.5
},
"hazards": [
{
"title": "IFR conditions",
"placement": "abeam",
"chainage_nm": 1431,
"track": [
{
"from_nm": 1431,
"to_nm": 1436.4,
"from_time": "2026-10-09T02:10:47Z",
"to_time": "2026-10-09T02:11:30Z",
"level_from_ft": 9222,
"level_to_ft": 13
}
]
}
]
}DO-229 · every outage counts · departure 8 Oct 23:00Z ±60 min
RAIM is available along the whole route for the planned departure 23:00Z and for every departure from 22:00Z to 9 Oct 00:00Z.
Departure window · 121 departures, one a minute
Can leave 60+ min early and 60+ min late: every departure in the window is clean.
Availability
202/202
samples, one a minute
Route
1,436 NM
3 h 12 min · arrival 02:11Z
Worst HPL
128.5 m
3% of the 2 NM HAL · 00:57Z, MTU to DTA
Satellites
10
fewest in view · 5 needed for FD, 6 for FDE
Procedure DWN6 is not in AIRAC 2610 (US procedures only): flown direct to its transition ABR · MTU: 2 places share this identifier; took Myton VORTAC (US), the one on the way · MOD5 is not published at KSFO in AIRAC 2610; flown as MOD9, its current revision
82 NOTAMs · in force 8 Oct 23:00Z to 02:11Z · ±5 NM corridor, 10 NM around each fix · airspace, runway and hazard notices
Read first: 13 runway, 12 airspace · abeam: 50 airspace, 7 runway
- 0 NMKMSPRWY 04/22 CLSD EXC TAX 30MIN PPR 121.9
- 6 NMKFCMAIRSPACE UAS WI AN AREA DEFINED AS 445307N0934315W (11.7NM WNW FCM) TO 445309N0932118W (5.6NM NE FCM) TO…
- 1,436 NMKSFORWY 01L/19R CLSD TUE FRI SAT 0730-1300
82 NOTAMs along the route, in force 8 Oct 23:00Z to 9 Oct 02:11Z: 19 crossing the corridor, 57 abeam, 6 at the route's aerodromes, 0 FIR-wide.
Crossing
19
areas the track passes through
Abeam
57
within 5 NM of the track
At the aerodromes
6
KMSP, KSFO
FIR-wide
0
addressed to the 5 FIRs crossed
Departure 8 Oct 23:00Z · 450 kt · FL350 · corridor ±20 NM
The flight meets one hazard: IFR conditions (G-AIRMET area), from 1,431 NM at 02:10Z, 9,222 ft. Four more are in the corridor, but not at the aircraft's time or level. By METAR and TAF: KMSP VFR at departure, KSFO VFR at arrival.
02:10Z to 02:11Z · 9,222 ft to 13 ft
First hazard
02:10Z
1,431 NM from KMSP · IFR conditions, G-AIRMET area
Departure KMSP
VFR
METAR VFR · TAF worst VFR around ETD
Destination KSFO
VFR
METAR VFR · TAF worst VFR around ETA
Pilot reports
2
within 50 NM and ±4,000 ft of the aircraft
Along the route, by distance from KMSP
23:00ZKSFO
02:11Z
Real answers from the live API, recorded for this page on 8 Oct 18:32Z.
A planning aid. It does not replace the operator's approved procedures.
All services
Every service and its status. RAIM is in production; NOTAMs, weather and routes are in beta and free. Every new service uses the same key and contract.
- Available3
- In production and counted. v1 may add fields; renaming or removing needs a new version.
- Beta11
- Live and free while in beta, not counted. At least 7 days' notice by email before it counts.
Satellite navigation
- RAIM predictionAvailable
Checks RAIM at positions over time, with protection levels and outages.
POST /v1/raim/predict
- RAIM route checkAvailable
Checks RAIM on every leg and gives a verdict and departure time window.
POST /v1/raim/route
Airspace
- NOTAM searchBeta
Finds FAA-distributed NOTAMs by place, FIR, area, number or text, with every version; runway conditions (FICON) and SNOWTAMs included.
GET /v1/notams
- NOTAMs en routeBeta
Finds NOTAMs in force along a flight, with those to read first on top.
POST /v1/notams/route
- Airspace en routeBeta
Shows the special use airspace, Class B, C and D airspace and TFRs a flight enters in the United States, where, when and at what level.
POST /v1/airspace/route
Weather
- Aerodrome weatherBeta
Returns METARs and TAFs by station, decoded beside the text as issued, with recent reports to read the trend.
GET /v1/weather/metar
- Weather en routeBeta
Finds the thunderstorms, turbulence, icing, volcanic ash, tropical cyclones and other hazards a flight meets at its time and level, plus pilot reports.
POST /v1/weather/route
- Winds aloft en routeBeta
Gives the wind and temperature at a flight's levels and times from the official winds aloft forecasts, with headwind components and the time en route.
POST /v1/weather/winds/route
Flight planning
- Flight briefing packAvailable
Returns RAIM, NOTAMs, weather and airspace for one flight in one call, in a compact form for poor connections; each part counts as one request of its service.
POST /v1/briefing
- AlertsBeta
Calls your webhook, signed, when the RAIM verdict, the NOTAMs, the weather hazards or the TFRs on its route change for a flight you watch; counted only when something changed.
POST /v1/alerts
- Route resolverBeta
Resolves route points using US airways, SIDs and STARs, or direct legs elsewhere.
GET /v1/routes/resolve
- Mass and balanceBeta
Computes weight and centre of gravity at ramp, takeoff, landing and zero fuel on your own aircraft data, against its limits and envelopes.
POST /v1/planning/mass-balance
- NavlogBeta
Builds a navigation log with headings, ground speeds, times and fuel from your aircraft's performance and the winds aloft along the flight.
POST /v1/planning/navlog
Reference data
- AirportsBeta
Provides airports, runways, frequencies and navaids worldwide from OurAirports.
GET /v1/airports
Access
- REST API v1
JSON in and out, a bearer key and one error shape for every service.
https://api.bravoecho.ai/v1
- MCP server
Gives AI agents thirteen tools with the same API key; only calls to Available services count.
https://api.bravoecho.ai/mcp
- OpenAPI description
OpenAPI 3.1 description of every Available and Beta endpoint, each marked with its status.
https://bravoecho.ai/openapi.json
Need something that isn't here?
Request a serviceEvery Available and Beta service also has a page in the console, on the same account.
Open the consoleBuild with AI
Give your AI coding tool one prompt and it writes a client, or connect an agent to the MCP server. Same key, same answers, and the key stays on your server.
Give this prompt to your AI coding tool
Pick your tool and copy the prompt. It reads the reference, keeps the key on the server, asks you to create a key if one is missing, and writes a small client in your project.
reads /llms-full.txtkey from BRAVOECHO_KEYserver-side only
The prompt
Read https://bravoecho.ai/llms-full.txt first. Add a small client to this project: send one flight (route string, departure time, speed, cruise level) to the RAIM, NOTAM and weather route checks and show each summary. Call bravoecho only from server-side code (a backend route or edge function), never from the browser. Read the key from the BRAVOECHO_KEY secret; if it's missing, tell me to create one at app.bravoecho.ai. Never put the key in code or in the client bundle. Then run it once and show me the three summaries.
The prompt
Read https://bravoecho.ai/llms-full.txt first; https://bravoecho.ai/openapi.json has the request and response schemas. Add a small client to this project: send one flight (route string, departure time, speed, cruise level) to the RAIM, NOTAM and weather route checks and show each summary. Call bravoecho only from server-side code (a backend route or edge function), never from the browser. Read the key from the BRAVOECHO_KEY secret; if it's missing, tell me to create one at app.bravoecho.ai. Never put the key in code or in the client bundle.
The prompt
Read https://bravoecho.ai/llms-full.txt first. Add a page where I enter one flight (route string, departure time, speed, cruise level) and see the RAIM, NOTAM and weather route check summaries. Call bravoecho only from a server function (in Lovable, a Supabase edge function), never from the browser. Store the key as a project secret named BRAVOECHO_KEY and read it there; if it's missing, tell me to create one at app.bravoecho.ai. Never put the key in the page code.
name raim_route_check
{
"arguments": {
"route": "KMSP DWN6.ABR J158 RAP MBW MTU J148 OAL.MOD5 KSFO",
"departure": "2026-10-08T23:00:00Z",
"speed_kt": 450,
"cruise_fl": 350,
"window_minutes": 60
}
}RAIM is available along the whole route for the planned departure 23:00Z and for every departure from 22:00Z to 9 Oct 00:00Z.
{"dispatch":{"ok":true,"min_outage_minutes":0,"longest_outage_s":0,"short_outages":0},"flight":{"start":"2026-10-08T23:00:00Z","end":"2026-10-09T02:11:30Z","duration_min":192,"distance_nm":1436.4,"availability_pct":100,"min_sats":10,"worst":{"hpl_nm":0.0694,"hpl_m":128.5,"at":"2026-10-09T00:57:02Z","lat":39.8396,"lon":-111.02,"between":["MTU","DTA"]}},"outages":[],"window":{"planned_departure":"2026-10-08T23:00:00Z","planned_ok":true,"minutes":60,"step_s":60,"departures_checked":121,"clean_pct":100,"slack_minutes":{"early":60,"late":60},…Recorded from the live API on 8 Oct 18:32Z.
Model Context Protocol
The MCP server exposes the API as tools for AI agents. Only tool calls to Available services count towards usage. Beta tools are free, as are connecting and listing tools.
Serverhttps://api.bravoecho.ai/mcp
claude mcp add --transport http bravoecho https://api.bravoecho.ai/mcp --header "Authorization: Bearer $BRAVOECHO_KEY"- /llms.txt
- An index of the documentation for coding agents.
- /llms-full.txt
- The complete v1 reference in one text file for coding agents, including auth, endpoints, errors, limits and pricing.
- /openapi.json
- The OpenAPI 3.1 description of every Available and Beta endpoint, for generated clients and typed requests.
raim_route_check- Will RAIM cover this route, and how far can departure move?
flight_briefing- What do RAIM, NOTAMs, weather and airspace say about this flight, in one call?
raim_predict- Will RAIM be available at these points around their planned times?
notams_along_routeBeta- Which NOTAMs apply to this flight, in order along the track?
notams_searchBeta- Which NOTAMs match this place, FIR, number or text?
weather_along_routeBeta- What hazards, aerodrome weather and pilot reports apply at this flight's times and levels?
weatherBeta- What are the METAR and TAF for this airport, now or at a given time?
winds_along_routeBeta- What wind and temperature does this flight meet at its levels, and how long will it take?
airspace_along_routeBeta- Which restricted areas, MOAs, Class B, C or D airspace and TFRs does this flight enter, and at what level?
mass_and_balanceBeta- Is this loading within the weight limits and the centre of gravity envelope, from takeoff to landing?
navlogBeta- What are the headings, ground speeds, times and fuel for this flight with my aircraft's performance?
airportBeta- What are this airport's details, runways and frequencies?
resolve_routeBeta- Which points does this filed route string stand for?
Contract, sources and testing
Every service shares one contract. Here are the sources and methods behind each, and how we test them.
Authorization: Bearer $BRAVOECHO_KEY
{"error": "validation",
"message": "..."}Read the API referenceOne contract for all services
- Contract
- https://api.bravoecho.ai/v1. Bearer key in Authorization. JSON in and out. RFC 3339 UTC times ending in Z. Fields may be added; renaming or removing fields requires a version bump.
- Errors
- One error shape: error and message. 401: missing or bad key. 422: names the field that failed. 429: includes Retry-After.
- Caveats
- Archive answers state the time they describe, what was known when, collection freshness and any collection gaps.
- Status
- Every service on one public status page. uptime.bravoecho.ai
Sources and methods
- RAIMAvailable
- GPS almanac from NAVCEN every 6 hours, and NANUs. DO-229 fault detection and exclusion each minute along the flight, protection level against the alert limit of each phase.
- NOTAMsBeta
- All NOTAMs distributed by the FAA NOTAM Management Service are archived from 12 Aug 2026, with every version kept for past replay. NOTAMs en route places each notice by distance along the track: crossing, abeam and at the aerodromes.
- WeatherBeta
- NOAA Aviation Weather Center reports are kept as issued with decoded fields since 24 Sep 2026, with METARs collected every minute and nothing deleted. Hazards match the flight's corridor, time and level.
- AirspaceBeta
- FAA special use airspace and Class B, C and D airspace, imported again whenever the FAA publishes a change, and TFRs from the FAA TFR service every 5 minutes, each version kept. They are placed along the flight like weather hazards: lateral area, the time the aircraft is there and its level.
- Flight planningBeta
- Computations on the aircraft data you send, from your weight and balance report and flight manual. We hold no aircraft data, so every answer is only as right as what it was given.
- Airports and routesBeta
- OurAirports supplies airports, runways, frequencies and navaids daily. FAA CIFP supplies US fixes, airways, SIDs and STARs for this and next AIRAC cycle. Elsewhere, airways and procedures are flown direct with a note.
- AlertsBeta
- Built on the briefing pack: each watched flight is checked every 15 minutes, and your webhook is called, signed with HMAC-SHA256, only when the RAIM verdict, a NOTAM or a hazard changes.
How we test
- RAIM
- Checked against FAA daily RAIM plots and AUGUR runs.
- NOTAMs
- Collected from the FAA NOTAM Management Service every 3 minutes with every version kept. Each night the live set is compared with the FAA's own checklist and any missing NOTAM is fetched again; holes in collection are listed in every answer about the past (meta.gaps).
- Weather
- METARs are collected every minute, the other reports every 3 to 5 minutes. Every 10 minutes holes in collection are looked for and refilled where the source keeps history, a daily check compares a sample of stored reports with the payloads as received, and every answer gives each feed's freshness and any gaps.
- Airspace
- TFR shapes are read from the FAA's own definitions (circles, arcs and points) and checked against saved FAA files before every deploy, as is placement by area, time and level. A limit above ground level is widened by the highest terrain in its state, so no flight is cleared by a guess.
- Flight planning
- Each rule is tested on worked examples before every deploy: moments, the centre of gravity, every weight limit, envelopes with their edges, and the centre of gravity as fuel burns.
- Airports and routes
- The FAA CIFP and OurAirports are checked every day. The current and the next AIRAC cycle are kept, a file with too few fixes is refused so the last good cycle stays, and route resolution is tested on real US routes with SIDs, airways and STARs before every deploy.
- Alerts
- Tested before every deploy against a test receiver: the signature, a failed call made again at the next check, and no call when only a newer almanac or METAR arrives.
Pricing
Pay as you go per organisation per calendar month, across all API keys. First 1,000 counted requests free every month. No card: beyond them, request pay as you go in the console and we invoice you monthly, paid by bank transfer.
Create an account- What counts
- One API call or MCP tool call is one request, whatever it returns. A prediction with 50 points is one request. Only Available services count.
- Beta
- Beta requests are recorded but not counted or billed while in beta. Before a beta service starts counting, we email you at least 7 days ahead.
- Enterprise
- Over 1,000,000 requests a month? Email sales@bravoecho.ai for an enterprise agreement covering volume pricing and terms.
Get your account and key
Create an account and a key on the free allowance, then run your own flight in the console or call the API.
Contact
Write to the address that fits your question.
- General questions
- hello@bravoecho.ai
- Help with an account, an API key or an answer
- support@bravoecho.ai
- Volume pricing and enterprise agreements
- sales@bravoecho.ai