Overview
The core endpoint. Returns a Risk Score (0–100) for a given route, airline, and date, along with historical stats, a confidence indicator, and an optional AI-generated explanation.
Request
IATA code of the departure airport (e.g. FCO, LHR, JFK).
IATA code of the arrival airport.
IATA airline code (e.g. AZ for Alitalia/ITA Airways, BA for British Airways).
Departure date in YYYY-MM-DD format. Must be a future date.
If true, includes recent news and disruption reports for the route in the response.
Response
IATA code of the departure airport.
IATA code of the arrival airport.
Requested departure date.
Risk Score from 0 (lowest risk) to 100 (highest risk).
Confidence in the score from 0.0 to 1.0, based on volume of historical data for this route/airline.
Historical proportion of flights on this route delayed by more than 30 minutes.
Average delay in minutes for flights that were delayed (> 30 min threshold).
Number of historical flights used to compute the score.
Human-readable risk label: Low risk, Medium risk, High risk, or Very high risk.
AI-generated plain-language explanation of the main risk drivers.
Present only when news=true. Array of recent disruption reports for the route.
Example
curl "https://app.airrating.io/api/score?origin=FCO&dest=LHR&airline=AZ&date=2026-04-10&api_key=YOUR_API_KEY"
{
"origin": "FCO",
"destination": "LHR",
"airline": "AZ",
"date": "2026-04-10",
"score": 62,
"confidence": 0.84,
"delay_rate": 0.31,
"avg_delay_min": 28.4,
"total_flights": 312,
"label": "Medium risk",
"explanation": "This route has a historical delay rate of 31%. Weather at Heathrow is a recurring factor in the April window. Confidence is high based on 312 recorded flights on this route and airline combination."
}
Score interpretation
| Score | Label | Recommendation |
|---|
| 0–30 | Low risk | Safe to book, low historical delay rate |
| 31–60 | Medium risk | Book with awareness, monitor closer to departure |
| 61–80 | High risk | Consider alternatives or build in buffer time |
| 81–100 | Very high risk | High disruption probability — evaluate alternatives |
score = 70% × statistical_score + 30% × ml_probability × min(1.0, confidence × 2)
The ML weight automatically reduces when confidence (historical data volume) is low, ensuring the score stays grounded in observed outcomes.