This is an unofficial FlightRadar24 API wrapper designed to provide easy and efficient access to the FlightRadar24 data. It supports all current v1 endpoints, enabling you to retrieve a wide range of real-time flight information directly into your applications.
For more details on the available endpoints and how to use the official FlightRadar24 API, visit the official documentation here https://fr24api.flightradar24.com/docs/getting-started.
You can install the FlightRadar library from NuGet by running the following command in your project:
dotnet add package FlightRadar
Alternatively, you can add it via the NuGet Package Manager in Visual Studio or by editing your .csproj file directly.
// Initialize the client with your API key
var flightRadarClient = new FlightRadarClient("YOUR_API_KEY");
// Get detailed airport information
var fullAirport = await flightRadarClient.V1.Airports.GetFullByCodeAsync("KJFK");
if (fullAirport is not null)
Console.WriteLine($"Airport: {fullAirport.Name}, Location: {fullAirport.City}, {fullAirport.Country}");
// Get basic airport information
var airport = await flightRadarClient.V1.Airports.GetByCodeAsync("EGLL");
if (airport is not null)
Console.WriteLine($"Airport: {airport.Name} (IATA: {airport.Code.Iata})");
// Get airline information by ICAO code
var airline = await flightRadarClient.V1.Airlines.GetByIcaoCodeAsync("UAL");
if (airline is not null)
Console.WriteLine($"Airline: {airline.Name} ({airline.Code.Icao})");
// Get current flight positions with filtering
var currentFlights = await flightRadarClient.V1.FlightPositions.GetFullAsync(new FlightPositionsFilter
{
Callsigns = ["UAL123", "DLH456"],
// You can also filter by:
// - Bounds (geographical rectangle)
// - Airports
});
if (currentFlights.Any())
{
foreach (var flight in currentFlights)
{
Console.WriteLine($"Flight: {flight.Callsign}, Altitude: {flight.Altitude}ft, Speed: {flight.GroundSpeed}kts");
}
}
// Get count of flights matching criteria
var count = await flightRadarClient.V1.FlightPositions.GetCountAsync(new FlightPositionsFilter
{
OperatingAs = ["SAS", "BAW"]
});
Console.WriteLine($"Found {count} flights operating for SAS and British Airways");
// Get historical flight positions
var historicPositions = await flightRadarClient.V1.HistoricFlightPositions.GetFullAsync(new HistoricFlightPositionFilter
{
Timestamp = DateTime.Now.AddDays(-1),
Callsigns = ["AFR1234"]
});
foreach (var position in historicPositions)
{
Console.WriteLine($"Historic position: {position.Callsign} at {position.Timestamp}, Alt: {position.Altitude}ft");
}
// Get detailed flight summary
var flightSummary = await flightRadarClient.V1.FlightSummaries.GetFullAsync(new FlightSummaryFilter
{
FlightIds = ["12345abc"]
});
if (flightSummary.Any())
{
var flight = flightSummary.First();
Console.WriteLine($"Flight: {flight.Callsign}, From: {flight.DepartureAirport.Icao} To: {flight.DestinationAirport.Icao}");
}
// Get flight track history by flight ID
var tracks = await flightRadarClient.V1.FlightTracks.GetByFlightIdAsync("34242a02");
if (tracks.Any())
{
var firstTrack = tracks.First();
Console.WriteLine($"Track path points: {firstTrack.Tracks.Count()}, Source: {firstTrack.Tracks.First().Source}");
// Process individual track points
foreach (var point in firstTrack.Tracks.Take(5))
{
Console.WriteLine($"Time: {point.Timestamp}, Lat: {point.Latitude}, Lon: {point.Longitude}, Alt: {point.Altitude}");
}
}
// Check your API usage
var usageStats = await flightRadarClient.V1.Usage.GetAsync(TimePeriod.Last24Hours);
foreach (var stat in usageStats)
{
Console.WriteLine($"Endpoint: {stat.Endpoint}, Requests: {stat.RequestCount}, Credits used: {stat.Credits}");
}