Skip to main content

Get profile stats

curl -X GET "http://localhost:3000/v1/profile/@me" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"
GET
/v1/profile/@me
Returns comprehensive statistics about tracked flights including passport data, aircraft stats, airlines, airports, and routes.

Response

passport
object
Overall flight statistics
mostFlownAircraft
object
Most frequently flown aircraft type
aircraftStats
object
Detailed aircraft statistics
shortestDistanceFlight
object
The flight with the shortest distance
longestDistanceFlight
object
The flight with the longest distance (same structure as shortestDistanceFlight)
shortestDurationFlight
object
The flight with the shortest duration
longestDurationFlight
object
The flight with the longest duration (same structure as shortestDurationFlight)
airlines
array
Array of airline statistics sorted by flight count
airports
array
Array of airport statistics sorted by departure count
topRoutes
array
Array of most frequently flown routes

Response example

{
  "passport": {
    "totalFlights": 127,
    "totalDistanceKm": 185420,
    "totalDurationMinutes": 15840,
    "totalAirports": 42,
    "totalAirlines": 18
  },
  "mostFlownAircraft": {
    "aircraftName": "Boeing 737-800",
    "flightCount": 35
  },
  "aircraftStats": {
    "mostFlownAircraftName": "Boeing 737-800",
    "mostFlownAircraftFlightCount": 35,
    "mostFlownAircraftImage": "https://cdn.aero.com/aircraft/737-800.jpg",
    "mostFlownAircraftFlights": [
      {
        "id": "flight_123",
        "flightNo": "UA456",
        "callSign": "UAL456",
        "airline": {
          "name": "United Airlines",
          "iata": "UA",
          "icao": "UAL"
        },
        "departureAirportCode": "LAX",
        "departureAirportName": "Los Angeles International Airport",
        "arrivalAirportCode": "SFO",
        "arrivalAirportName": "San Francisco International Airport",
        "date": "2024-03-15T08:00:00Z"
      }
    ],
    "mostCommonTailNumber": "N12345",
    "mostCommonTailNumberCount": 8,
    "medianAge": 12.5,
    "youngestAircraft": {
      "aircraftName": "Airbus A321neo",
      "tailNumber": "N98765",
      "age": 2,
      "image": "https://cdn.aero.com/aircraft/N98765.jpg"
    },
    "oldestAircraft": {
      "aircraftName": "Boeing 757-200",
      "tailNumber": "N54321",
      "age": 28
    }
  },
  "shortestDistanceFlight": {
    "flight": {
      "id": "flight_456",
      "flightNo": "DL123",
      "departureAirportCode": "LAX",
      "arrivalAirportCode": "SFO",
      "date": "2024-02-10T10:00:00Z"
    },
    "distanceKm": 543
  },
  "longestDistanceFlight": {
    "flight": {
      "id": "flight_789",
      "flightNo": "SQ12",
      "departureAirportCode": "SIN",
      "arrivalAirportCode": "JFK",
      "date": "2024-01-15T23:00:00Z"
    },
    "distanceKm": 15344
  },
  "shortestDurationFlight": {
    "flight": {
      "id": "flight_456",
      "flightNo": "DL123"
    },
    "durationMinutes": 65
  },
  "longestDurationFlight": {
    "flight": {
      "id": "flight_789",
      "flightNo": "SQ12"
    },
    "durationMinutes": 1140
  },
  "airlines": [
    {
      "airlineName": "United Airlines",
      "airlineIata": "UA",
      "airlineIcao": "UAL",
      "image": "https://cdn.aero.com/airlines/UA.png",
      "flightCount": 45
    },
    {
      "airlineName": "Delta Air Lines",
      "airlineIata": "DL",
      "airlineIcao": "DAL",
      "image": "https://cdn.aero.com/airlines/DL.png",
      "flightCount": 32
    }
  ],
  "airports": [
    {
      "airportCode": "LAX",
      "airportName": "Los Angeles International Airport",
      "departureCount": 28
    },
    {
      "airportCode": "SFO",
      "airportName": "San Francisco International Airport",
      "departureCount": 22
    }
  ],
  "topRoutes": [
    {
      "origin": "LAX",
      "destination": "SFO",
      "flightCount": 12
    },
    {
      "origin": "JFK",
      "destination": "LAX",
      "flightCount": 8
    }
  ]
}

Error responses

401
object
Unauthorized - Invalid or missing JWT token
{
  "message": "Unauthorized"
}
500
object
Internal server error
{
  "message": "Internal server error"
}

Use cases

Display travel statistics dashboard

Use this endpoint to show users their comprehensive flight history:
const displayStats = async () => {
  const response = await fetch('http://localhost:3000/v1/profile/@me', {
    headers: { 'Authorization': 'Bearer YOUR_JWT_TOKEN' }
  });
  const stats = await response.json();
  
  console.log(`You've flown ${stats.passport.totalFlights} flights`);
  console.log(`Total distance: ${stats.passport.totalDistanceKm.toLocaleString()} km`);
  console.log(`Visited ${stats.passport.totalAirports} airports`);
  console.log(`Most flown aircraft: ${stats.mostFlownAircraft.aircraftName}`);
};

Show favorite airlines and airports

const showFavorites = async () => {
  const response = await fetch('http://localhost:3000/v1/profile/@me', {
    headers: { 'Authorization': 'Bearer YOUR_JWT_TOKEN' }
  });
  const stats = await response.json();
  
  // Top 3 airlines
  const topAirlines = stats.airlines.slice(0, 3);
  console.log('Your top airlines:');
  topAirlines.forEach(airline => {
    console.log(`${airline.airlineName}: ${airline.flightCount} flights`);
  });
  
  // Top 3 airports
  const topAirports = stats.airports.slice(0, 3);
  console.log('Your most visited airports:');
  topAirports.forEach(airport => {
    console.log(`${airport.airportName}: ${airport.departureCount} departures`);
  });
};

Generate travel report

const generateReport = async () => {
  const response = await fetch('http://localhost:3000/v1/profile/@me', {
    headers: { 'Authorization': 'Bearer YOUR_JWT_TOKEN' }
  });
  const stats = await response.json();
  
  const report = {
    summary: {
      flights: stats.passport.totalFlights,
      distance: `${Math.round(stats.passport.totalDistanceKm).toLocaleString()} km`,
      timeInAir: `${Math.round(stats.passport.totalDurationMinutes / 60)} hours`,
      airports: stats.passport.totalAirports,
      airlines: stats.passport.totalAirlines
    },
    records: {
      longestFlight: stats.longestDistanceFlight,
      shortestFlight: stats.shortestDistanceFlight,
      mostFlownRoute: stats.topRoutes[0]
    },
    aircraft: {
      favorite: stats.mostFlownAircraft.aircraftName,
      youngest: stats.aircraftStats.youngestAircraft,
      oldest: stats.aircraftStats.oldestAircraft
    }
  };
  
  return report;
};

Build docs developers (and LLMs) love