/get/resort/{id} - Get resort by ID

Overview

The /get/resort/{id} endpoint retrieves detailed information about a specific ski resort by its ID.

Purpose

Endpoint

GET /get/resort/{id}

Parameters

Path parameters

id (integer, required)

The resort's site ID (numeric identifier).

Examples:

Validation: Must be numeric. Non-numeric IDs will return an error.


Query parameters

sourceFields (string, optional)

Return only specific fields from the _source object using dot notation (comma-separated).

Purpose: Optimize response payload size by requesting only needed fields

Examples:


Response format

Success response structure

{
  "_index": "fnugg_resort",
  "_type": "resort",
  "_id": "14",
  "_version": 1,
  "found": true,
  "_source": {
    "id": 14,
    "name": "Trysil",
    "description": "Norges største alpinområde med 71 nedfarter...",
    "contact": {
      "address": "Trysilveien 1",
      "zip_code": "2420",
      "city": "Trysil",
      "phone_servicecenter": "62 45 00 00",
      "phone_skipatrol": "62 45 00 10",
      "call_number": "62450000",
      "email": ""
    },
    "opening_hours": {
      "monday": { "from": "09:00", "to": "16:00", "closed": false },
      "tuesday": { "from": "09:00", "to": "16:00", "closed": false },
      "wednesday": { "from": "09:00", "to": "16:00", "closed": false },
      "thursday": { "from": "09:00", "to": "16:00", "closed": false },
      "friday": { "from": "09:00", "to": "20:00", "closed": false },
      "saturday": { "from": "09:00", "to": "16:00", "closed": false },
      "sunday": { "from": "09:00", "to": "16:00", "closed": false }
    },
    "resort_open": true,
    "resort_open_override": false,
    "resort_opening_date": "2024-11-20T00:00:00Z",
    "resort_closing_date": "2025-04-28T00:00:00Z",
    "default_weather_zones": {
      "top": "zone_1",
      "bottom": "zone_2"
    },
    "lift_ticket_prices": [
      {
        "title": "Dagspass",
        "price_adult": 595,
        "price_youth": 475,
        "price_child": 395
      }
    ],
    "lifts": {
      "count": 31,
      "open": 28,
      "closed": 3,
      "list": []
    },
    "slopes": {
      "count": 71,
      "open": 65,
      "closed": 6,
      "list": []
    },
    "slope_map": [
      {
        "url": "https://example.com/map.jpg",
        "type": "image"
      }
    ],
    "images": [
      {
        "url": "https://example.com/image.jpg",
        "caption": "View from the top",
        "photographer": "John Doe"
      }
    ],
    "social_media": {
      "twitter": "",
      "instagram": "https://instagram.com/trysil"
    },
    "booking": [
      {
        "title": "Book accommodation",
        "url": "https://booking.trysil.com"
      }
    ],
    "urls": {
      "yr": "https://www.yr.no/sted/Norge/Hedmark/Trysil/Trysil/",
      "homepage": "https://trysil.com",
      "opening_hours": "https://trysil.com/opening-hours",
      "lift_ticket_prices": "https://trysil.com/prices"
    },
    "park_description": "Modern terrain park with features for all levels...",
    "resort_type": ["Alpint", "Familie"],
    "region": ["Trysil", "Hedmark"],
    "location": {
      "lat": 61.315,
      "lon": 12.268
    },
    "weather_zones": [
      {
        "id": "zone_1",
        "name": "Toppen",
        "elevation": 1132
      },
      {
        "id": "zone_2", 
        "name": "Dalen",
        "elevation": 400
      }
    ],
    "conditions": {
      "combined": {
        "top": {
          "temperature": -5,
          "wind": {
            "speed": 3.2,
            "direction": "N"
          },
          "snow": {
            "depth": 120,
            "depth_terrain": 95,
            "last_snow": "2024-11-05T00:00:00Z"
          },
          "powder_alarm": true,
          "condition_rating": 4
        },
        "bottom": {
          "temperature": -2,
          "wind": {
            "speed": 2.1,
            "direction": "NE"
          },
          "snow": {
            "depth": 85,
            "depth_terrain": 65,
            "last_snow": "2024-11-05T00:00:00Z"
          },
          "powder_alarm": false,
          "condition_rating": 3
        }
      }
    },
    "last_updated": "2024-11-07T10:30:00Z",
    "nearest_resorts": [
      {
        "distance": 45300,
        "name": "Sjusjøen",
        "site_path": "/sjusjoen/",
        "id": 89,
        "sort": "0"
      }
    ],
    "apen_bakke_tickets": 0,
    "site_path": "/trysil/"
  }
}

Error response (invalid ID)

{
  "error": "Invalid resort ID. Must be numeric."
}

Error response (not found)

{
  "error": "Resort with ID '999' was not found.",
  "error_key": "resort_not_found",
  "id": "999"
}

Response fields

Top level fields

_source fields

Basic information

Contact information

Operating status

Facilities

Pricing & booking

Media & assets

Weather & conditions

Location & geography


Example requests

Get complete resort data

GET /get/resort/14

Returns all fields for Trysil resort.


Get resort with specific fields only

GET /get/resort/14?sourceFields=name,resort_open,location,conditions.combined.top.snow.depth_terrain

Returns only name, open status, location, and top snow depth.


Get resort basic info

GET /get/resort/12?sourceFields=name,description,contact,location,resort_open

Returns basic information without detailed conditions or statistics.


Use cases

  1. Display resort details page: Fetch complete resort data for a detail view
  2. Check resort status: Use sourceFields=resort_open,lifts,slopes to get current status
  3. Show snow conditions: Use sourceFields=conditions,weather_zones to display weather
  4. Map integration: Use sourceFields=name,location,resort_open for map markers
  5. Compare resorts: Fetch multiple resorts with filtered fields for comparison
  6. Mobile optimization: Use sourceFields to reduce payload for mobile apps