Appearance
Content Endpoint
GET /api/v1/partner/{airport}/content
Retrieve content for a specific airport. Returns pages, news, FAQs, amenities, shopping, dining, and more from the airport's website.
URL Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
airport | string | Yes | Airport code (e.g., DEN, SAN). Case-insensitive. |
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
size | integer | 20 | Results per page (1–100) |
from | integer | 0 | Pagination offset |
q | string | — | Full-text search query. Searches title, content, and excerpt fields. |
contentType | string | — | Filter by content type (see Content Types below) |
modifiedSince | ISO 8601 date | — | Only return content modified after this date |
includeBody | boolean | true | Include full content body. Set to false for listing views. |
Response Format
Success Response (200 OK)
json
{
"success": true,
"meta": {
"partner": "Sprinklr",
"partnerId": 14,
"airport": "DEN",
"airportName": "Denver International Airport",
"timestamp": "2026-02-13T04:48:01.546Z",
"responseTimeMs": 528
},
"pagination": {
"size": 20,
"from": 0,
"total": 2789,
"pages": 140,
"hasMore": true
},
"results": [
{
"id": "wp_den_57606",
"contentType": "shopping",
"title": "Walker & William",
"url": "/shop/walker-william/",
"excerpt": "Walker & William is a family-owned artisan confectionery...",
"content": "Full HTML content here...",
"thumbnail": "https://www.flydenver.com/app/uploads/2026/02/logo.jpg",
"language": "en",
"lastModified": "2026-02-09T15:26:04.000Z",
"metadata": {
"location_detail": "Near Gate C33",
"hours_of_operation": "Sun. - Fri.: 7 a.m. - 9 p.m.",
"phone_number": "(720) 220-5656",
"map_poi_id": 792
}
}
]
}Response Fields
| Field | Type | Description |
|---|---|---|
success | boolean | Whether the request succeeded |
meta.partner | string | Your partner organization name |
meta.partnerId | number | Your partner ID |
meta.airport | string | Airport code (uppercase) |
meta.airportName | string | Full airport name |
meta.timestamp | string | Response timestamp (ISO 8601) |
meta.responseTimeMs | number | Server processing time in milliseconds |
pagination.size | number | Requested page size |
pagination.from | number | Current offset |
pagination.total | number | Total matching documents |
pagination.pages | number | Total pages available |
pagination.hasMore | boolean | Whether more results exist |
results | array | Array of content items |
Content Item Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique content identifier |
contentType | string | Content type (see below) |
title | string | Content title |
url | string or null | Original URL path on airport website |
excerpt | string or null | Short summary |
content | string | Full HTML content (omitted if includeBody=false) |
thumbnail | string or null | Featured image URL |
language | string | Language code (currently en) |
lastModified | string | Last update timestamp (ISO 8601) |
metadata | object or null | Additional structured data (varies by content type) |
Content Types
| Type | Description |
|---|---|
page | General website pages |
news | News articles and press releases |
faq | Frequently asked questions |
shopping | Retail stores |
dining | Restaurants and food vendors |
amenity | Airport amenities and services |
parking-transportation | Parking and ground transportation |
event | Events and promotions |
general | Other general content |
Examples
Basic Request
bash
curl -X GET "https://app.flyfruition.com/api/v1/partner/DEN/content" \
-H "x-partner-api-key: flyfru_pk_live_your_key"Search for Content
bash
curl -X GET "https://app.flyfruition.com/api/v1/partner/DEN/content?q=parking&size=10" \
-H "x-partner-api-key: flyfru_pk_live_your_key"Filter by Content Type
bash
curl -X GET "https://app.flyfruition.com/api/v1/partner/DEN/content?contentType=dining&size=50" \
-H "x-partner-api-key: flyfru_pk_live_your_key"Pagination
bash
# Page 1
curl -X GET "https://app.flyfruition.com/api/v1/partner/DEN/content?size=20&from=0" \
-H "x-partner-api-key: flyfru_pk_live_your_key"
# Page 2
curl -X GET "https://app.flyfruition.com/api/v1/partner/DEN/content?size=20&from=20" \
-H "x-partner-api-key: flyfru_pk_live_your_key"
# Page 3
curl -X GET "https://app.flyfruition.com/api/v1/partner/DEN/content?size=20&from=40" \
-H "x-partner-api-key: flyfru_pk_live_your_key"Get Only Metadata (No Content Body)
bash
curl -X GET "https://app.flyfruition.com/api/v1/partner/DEN/content?includeBody=false" \
-H "x-partner-api-key: flyfru_pk_live_your_key"Incremental Sync (Modified Since)
bash
curl -X GET "https://app.flyfruition.com/api/v1/partner/DEN/content?modifiedSince=2026-02-01T00:00:00Z" \
-H "x-partner-api-key: flyfru_pk_live_your_key"Combined Search and Filter
bash
curl -X GET "https://app.flyfruition.com/api/v1/partner/DEN/content?q=store&contentType=shopping&size=10" \
-H "x-partner-api-key: flyfru_pk_live_your_key"Health Check
A public health endpoint is available (no authentication required):
bash
curl -X GET "https://app.flyfruition.com/api/v1/partner/health"Response:
json
{
"status": "healthy",
"timestamp": "2026-02-13T04:48:03.303Z",
"version": "v1",
"services": {
"database": { "status": "up", "latencyMs": 45 },
"redis": { "status": "up", "latencyMs": 19 },
"elasticsearch": { "status": "up", "latencyMs": 30 }
}
}Status values: healthy (all services operational), degraded (some services down), unhealthy (critical failure, returns 503).