Developer Documentation

LobbyFlight API

Integrate real-time flight data into your applications. Our API supports multi-display architecture - manage multiple displays with individual configurations.

RESTful API
Real-time Data
Secure & Reliable

Quick Start

1

Get API Key

API access is available on the Premium plan. Generate your API key in the portal.

2

Make Request

Include your API key in the Authorization header and make requests to our endpoints.

3

Get Data

Receive JSON responses with flight data, configurations, and weather information.

Authentication

All API requests require authentication using an API key. Include your key in the X-API-Key header:

X-API-Key: lf_live_xxxxxxxxxxxx

API keys are available exclusively for Premium plan subscribers.Upgrade to Premium

Code Examples

# List all displays
curl -X GET "https://lobbyflight.com/api/v1/displays" \
  -H "X-API-Key: lf_live_your_api_key_here"

# Get flights for a specific display
curl -X GET "https://lobbyflight.com/api/v1/displays/{displayId}/flights" \
  -H "X-API-Key: lf_live_your_api_key_here"

# Get flights by airport code
curl -X GET "https://lobbyflight.com/api/v1/flights/VIE?type=departures" \
  -H "X-API-Key: lf_live_your_api_key_here"

API Endpoints

All endpoints use the base URL https://lobbyflight.com/api/v1

Displays

GET/api/v1/displays

List all displays for your hotel

Response

{
  "success": true,
  "displays": [
    {
      "id": "d1a2b3c4-5678-90ab-cdef-1234567890ab",
      "name": "Lobby Main Display",
      "hotelName": "Grand Hotel Vienna",
      "displayMode": "tv",
      "airportCode": "VIE",
      "flightType": "departures",
      "isActive": true,
      "lastSeenAt": "2024-01-15T09:55:00Z",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  ]
}
GET/api/v1/displays/{displayId}

Get detailed configuration for a specific display

Parameters

NameTypeRequiredDescription
displayIdstringYesUnique display identifier (UUID)

Response

{
  "success": true,
  "display": {
    "id": "d1a2b3c4-5678-90ab-cdef-1234567890ab",
    "name": "Lobby Main Display",
    "hotelName": "Grand Hotel Vienna",
    "displayMode": "tv",
    "airportCode": "VIE",
    "flightType": "departures",
    "logoUrl": "https://...",
    "theme": {
      "primary": "#1E40AF",
      "secondary": "#3B82F6"
    },
    "refreshInterval": 300,
    "timeFormat": "24h",
    "timezone": "Europe/Vienna",
    "showWeather": true,
    "languages": ["de", "en"],
    "isActive": true
  }
}
GET/api/v1/displays/{displayId}/flights

Get flights for a specific display based on its configured airport

Parameters

NameTypeRequiredDescription
displayIdstringYesUnique display identifier (UUID)
typestringNoOverride flight type: "departures" or "arrivals"

Response

{
  "success": true,
  "data": [
    {
      "flight": { "iata": "OS501", "number": "501" },
      "airline": { "name": "Austrian Airlines", "iata": "OS" },
      "departure": {
        "scheduled": "2024-01-15T10:00:00Z",
        "terminal": "3",
        "gate": "F10"
      },
      "arrival": {
        "airport": "Frankfurt",
        "iata": "FRA"
      },
      "flightStatus": "scheduled"
    }
  ],
  "airport": "VIE",
  "flightType": "departures",
  "displayId": "d1a2b3c4-...",
  "displayName": "Lobby Main Display",
  "cachedAt": "2024-01-15T09:55:00Z"
}
GET/api/v1/displays/{displayId}/analytics

Get analytics data for a specific display

Parameters

NameTypeRequiredDescription
displayIdstringYesUnique display identifier (UUID)
startDatestringNoStart date (ISO format, default: 7 days ago)
endDatestringNoEnd date (ISO format, default: today)

Response

{
  "success": true,
  "analytics": {
    "displayId": "d1a2b3c4-...",
    "displayName": "Lobby Main Display",
    "displayMode": "tv",
    "period": {
      "startDate": "2024-01-08",
      "endDate": "2024-01-15"
    },
    "metrics": {
      "totalViews": 1234,
      "totalSearches": 89,
      "totalInteractions": 256,
      "uptimePercentage": 99.2,
      "errorCount": 3
    },
    "dailyStats": [...]
  }
}

Flights

GET/api/v1/flights/{airportCode}

Get flights by airport code (must be in your authorized airport list)

Parameters

NameTypeRequiredDescription
airportCodestringYesIATA airport code (e.g., VIE, MUC)
typestringNoFilter by "departures" (default) or "arrivals"

Response

{
  "success": true,
  "data": [
    {
      "flight": { "iata": "OS501", "number": "501" },
      "airline": { "name": "Austrian Airlines", "iata": "OS" },
      "departure": {
        "scheduled": "2024-01-15T10:00:00Z",
        "terminal": "3",
        "gate": "F10"
      },
      "arrival": {
        "airport": "Frankfurt",
        "iata": "FRA"
      },
      "flightStatus": "scheduled"
    }
  ],
  "airport": "VIE",
  "type": "departures",
  "cachedAt": "2024-01-15T09:55:00Z"
}

Weather

GET/api/v1/weather/{airportCode}

Get current weather for an airport location

Parameters

NameTypeRequiredDescription
airportCodestringYesIATA airport code (e.g., VIE, MUC)
unitsstringNo"metric" (default) or "imperial"

Response

{
  "success": true,
  "data": {
    "temp": 12,
    "feelsLike": 10,
    "description": "partly cloudy",
    "icon": "02d",
    "humidity": 65,
    "windSpeed": 15,
    "forecast": [
      {
        "date": "2024-01-16",
        "tempMax": 14,
        "tempMin": 8,
        "description": "sunny",
        "icon": "01d"
      }
    ]
  },
  "airport": "VIE",
  "units": "metric",
  "cachedAt": "2024-01-15T09:55:00Z"
}

Analytics

GET/api/v1/analytics

Get analytics overview for all displays of your hotel

Parameters

NameTypeRequiredDescription
startDatestringNoStart date (ISO format, default: 7 days ago)
endDatestringNoEnd date (ISO format, default: today)

Response

{
  "success": true,
  "analytics": {
    "hotelId": "h1a2b3c4-...",
    "period": {
      "startDate": "2024-01-08",
      "endDate": "2024-01-15"
    },
    "summary": {
      "totalDisplays": 3,
      "activeDisplays": 3,
      "totalViews": 4521,
      "totalSearches": 312,
      "totalInteractions": 876,
      "averageUptime": 98.7
    },
    "displays": [
      {
        "displayId": "d1a2b3c4-...",
        "displayName": "Lobby Main Display",
        "displayMode": "tv",
        "metrics": {...}
      }
    ]
  }
}

Rate Limits

Request Limits

  • 100 requests per minute
  • 10,000 requests per day
  • Burst limit: 20 requests per second

Rate Limit Headers

Rate limit information is included in response headers:

X-RateLimit-Limit: 100

X-RateLimit-Remaining: 95

X-RateLimit-Reset: 1705312800

Error Codes

CodeStatusDescription
200OKRequest successful
400Bad RequestInvalid parameters or malformed request
401UnauthorizedMissing or invalid API key
403ForbiddenAPI access not included in your plan
404Not FoundHotel or resource not found
429Too Many RequestsRate limit exceeded
500Server ErrorInternal server error

Ready to Start Building?

Get your API key today and start integrating LobbyFlight data into your applications.