Integrate real-time flight data into your applications. Our API supports multi-display architecture - manage multiple displays with individual configurations.
API access is available on the Premium plan. Generate your API key in the portal.
Include your API key in the Authorization header and make requests to our endpoints.
Receive JSON responses with flight data, configurations, and weather information.
All API requests require authentication using an API key. Include your key in the X-API-Key header:
X-API-Key: lf_live_xxxxxxxxxxxxAPI keys are available exclusively for Premium plan subscribers.Upgrade to Premium
# 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"All endpoints use the base URL https://lobbyflight.com/api/v1
/api/v1/displaysList all displays for your hotel
{
"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"
}
]
}/api/v1/displays/{displayId}Get detailed configuration for a specific display
| Name | Type | Required | Description |
|---|---|---|---|
| displayId | string | Yes | Unique display identifier (UUID) |
{
"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
}
}/api/v1/displays/{displayId}/flightsGet flights for a specific display based on its configured airport
| Name | Type | Required | Description |
|---|---|---|---|
| displayId | string | Yes | Unique display identifier (UUID) |
| type | string | No | Override flight type: "departures" or "arrivals" |
{
"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"
}/api/v1/displays/{displayId}/analyticsGet analytics data for a specific display
| Name | Type | Required | Description |
|---|---|---|---|
| displayId | string | Yes | Unique display identifier (UUID) |
| startDate | string | No | Start date (ISO format, default: 7 days ago) |
| endDate | string | No | End date (ISO format, default: today) |
{
"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": [...]
}
}/api/v1/flights/{airportCode}Get flights by airport code (must be in your authorized airport list)
| Name | Type | Required | Description |
|---|---|---|---|
| airportCode | string | Yes | IATA airport code (e.g., VIE, MUC) |
| type | string | No | Filter by "departures" (default) or "arrivals" |
{
"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"
}/api/v1/weather/{airportCode}Get current weather for an airport location
| Name | Type | Required | Description |
|---|---|---|---|
| airportCode | string | Yes | IATA airport code (e.g., VIE, MUC) |
| units | string | No | "metric" (default) or "imperial" |
{
"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"
}/api/v1/analyticsGet analytics overview for all displays of your hotel
| Name | Type | Required | Description |
|---|---|---|---|
| startDate | string | No | Start date (ISO format, default: 7 days ago) |
| endDate | string | No | End date (ISO format, default: today) |
{
"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 limit information is included in response headers:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1705312800
| Code | Status | Description |
|---|---|---|
| 200 | OK | Request successful |
| 400 | Bad Request | Invalid parameters or malformed request |
| 401 | Unauthorized | Missing or invalid API key |
| 403 | Forbidden | API access not included in your plan |
| 404 | Not Found | Hotel or resource not found |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Server Error | Internal server error |
Get your API key today and start integrating LobbyFlight data into your applications.