# ================================================================ # SWISSACTIVITIES GRAPHQL API - KOMPLETTE QUERIES # ================================================================ # Kopiere ein Query und füge es im GraphQL Playground ein: # https://contentcdn.swissactivities.com/api/graphql # # Keine Authentifizierung nötig - API ist offen! # ================================================================ # ============================================ # ACTIVITIES - Alle verfügbaren Felder # ============================================ # Filter-Optionen (alle optional): # q: String - Suche im Titel # locale: String - Sprache (de-CH, en-CH, fr-CH, it-CH) # typeId: String - Nach Aktivitätstyp filtern # locationId: String - Nach Ort filtern # supplierId: String - Nach Anbieter filtern # attributeValue: String - Nach Attribut filtern # nearLat: Float - Geo-Suche Latitude # nearLng: Float - Geo-Suche Longitude # radiusKm: Float - Geo-Suche Radius (default: 50) # limit: Int - Max Ergebnisse (default: 20, max: 100) # offset: Int - Pagination Offset # ============================================ query Activities { activities(limit: 10, locale: "de-CH") { data { id bookingId locale title teaserImage { url alternativeText } supplier { id name slug } location { id title slug activityCount } type { id title slug } info { title teaser slug } summary { startingPrice { amount currency formatted } rankingScoreValue popularity isActive } isBookable nextAvailableDate lat lng distance } total hasMore } } # ============================================ # SINGLE ACTIVITY - Einzelne Aktivität nach ID # ============================================ # Parameter: # id: String! - Activity ID (required) # locale: String - Sprache (default: de-CH) # ============================================ query Activity { activity(id: "240", locale: "de-CH") { id bookingId locale title teaserImage { url alternativeText } supplier { id name slug } location { id title slug activityCount } type { id title slug } info { title teaser slug } summary { startingPrice { amount currency formatted } rankingScoreValue popularity isActive } isBookable nextAvailableDate lat lng } } # ============================================ # LOCATIONS - Alle Orte # ============================================ # Parameter: # locale: String - Sprache (default: de-CH) # limit: Int - Max Ergebnisse (default: 200) # ============================================ query Locations { locations(locale: "de-CH", limit: 200) { id title slug activityCount } } # ============================================ # TYPES - Alle Aktivitätstypen # ============================================ # Parameter: # locale: String - Sprache (default: de-CH) # ============================================ query Types { types(locale: "de-CH") { id title slug } } # ============================================ # WISPO STATIONS - Skigebiete mit ALLEN Daten # ============================================ # Filter-Optionen (alle optional): # locale: String - Sprache (de-CH, en-CH, fr-CH, it-CH) # q: String - Suche nach Name # limit: Int - Max Ergebnisse (default: 50, max: 500) # offset: Int - Pagination Offset # ============================================ query WispoStations { wispoStations(limit: 10, locale: "de-CH") { data { id name latitude longitude resort { id name regionId } address { name street place zip phone email website } info { altitude seasonStart seasonEnd totalFacilities cableCars chairlifts skilifts babyLifts conveyorBelts hasShuttlebus report lifts { cableCar chairlift skilift babyLift } } snow { freshSnow freshSnowPisteTop depthResort depthPiste lastSnowfall avalancheRiskUrl report } ski { areaName slopesTotal slopesLength slopesOpenLength valleyRuns openFacilities openingTime closingTime condition snowCondition valleyRunsCondition report } snowboard { funparkName snowparksTotal snowparksOpen halfpipesOpen snowtubesOpen hasArtificialSnow hasFloodlight condition snowparks { name type status lastUpdated } } crosscountry { areaName phone classicLength classicPrepared skatingLength skatingPrepared dogTrailLength dogTrailOpen floodlightLength floodlightTill classicCondition skatingCondition report routes { title status } } hiking { areaName walkingTrailLength walkingTrailPrepared snowshoeTrailsTotal snowshoeTrailsLength condition openingTime closingTime report routes { title status } } tobogganing { areaName tracksTotal tracksLength tracksOpen tracksOpenLength hasArtificialSnow hasPublicTransport hasRental skillLevel condition report } sledge { runsTotal runsLength runsOpenLength condition } snowshoe { trailsTotal trailsLength trailsOpenLength condition } prices { dayTicket { adult child teenager senior currency } halfDayTicket { adult child teenager senior currency } halfDayFrom weekTicket { adult child teenager senior currency } seasonTicket { adult child teenager senior currency } familyReduction hourCardsAvailable dynamicPrices description } weather { condition temperatureResort temperaturePiste forecast } weatherForecast { type date temperature iconCode url } images { type url created updated } webcams { url sourceUrl place latitude longitude } links { type title url } detailLinks { lang url } lastUpdate } total hasMore pagination { total limit offset hasMore page totalPages } meta { locale lastSync expiresAt source responseTimeMs } } } # ============================================ # SINGLE WISPO STATION - Einzelnes Skigebiet # ============================================ # Parameter: # id: Int! - Station ID (required) # locale: String - Sprache (default: de-CH) # ============================================ query WispoStation { wispoStation(id: 2, locale: "de-CH") { id name latitude longitude resort { id name regionId } address { name street place zip phone email website } info { altitude seasonStart seasonEnd totalFacilities cableCars chairlifts skilifts babyLifts conveyorBelts hasShuttlebus report lifts { cableCar chairlift skilift babyLift } } snow { freshSnow freshSnowPisteTop depthResort depthPiste lastSnowfall avalancheRiskUrl report } ski { areaName slopesTotal slopesLength slopesOpenLength valleyRuns openFacilities openingTime closingTime condition snowCondition valleyRunsCondition report } snowboard { funparkName snowparksTotal snowparksOpen halfpipesOpen snowtubesOpen hasArtificialSnow hasFloodlight condition snowparks { name type status lastUpdated } } crosscountry { areaName phone classicLength classicPrepared skatingLength skatingPrepared dogTrailLength dogTrailOpen floodlightLength floodlightTill classicCondition skatingCondition report routes { title status } } hiking { areaName walkingTrailLength walkingTrailPrepared snowshoeTrailsTotal snowshoeTrailsLength condition openingTime closingTime report routes { title status } } tobogganing { areaName tracksTotal tracksLength tracksOpen tracksOpenLength hasArtificialSnow hasPublicTransport hasRental skillLevel condition report } sledge { runsTotal runsLength runsOpenLength condition } snowshoe { trailsTotal trailsLength trailsOpenLength condition } prices { dayTicket { adult child teenager senior currency } halfDayTicket { adult child teenager senior currency } halfDayFrom weekTicket { adult child teenager senior currency } seasonTicket { adult child teenager senior currency } familyReduction hourCardsAvailable dynamicPrices description } weather { condition temperatureResort temperaturePiste forecast } weatherForecast { type date temperature iconCode url } images { type url created updated } webcams { url sourceUrl place latitude longitude } links { type title url } detailLinks { lang url } lastUpdate } } # ============================================ # TOURS - Wanderungen, Velo, Schneeschuh etc. # ============================================ # Filter-Optionen (alle optional): # q: String - Suche in Name/Abstract # routeType: String - hike, mountainbike, bicycle, snowshoe, winterhiking, crosscountryskiing, sledging # season: String - summer, winter # difficulty: String - easy, medium, difficult # nearLat: Float - Latitude für Geo-Suche # nearLng: Float - Longitude für Geo-Suche # radiusKm: Float - Radius in km (default: 50) # limit: Int - Max Ergebnisse (default: 50, max: 500) # offset: Int - Pagination Offset # ============================================ query Tours { tours(routeType: "hike", limit: 20) { data { id name abstract url routeType routeCategory difficulty season latitude longitude startPoint endPoint distance duration ascent descent minAltitude maxAltitude isRoundtrip isBarrierFree switzerlandMobilityRoute switzerlandMobilityUrl geodataUrl providerName providerEmail providerPhone providerUrl imageUrl logoUrl landscapes views origin lastUpdated } total hasMore pagination { total limit offset page totalPages } meta { locale lastSync source } } } # ============================================ # SINGLE TOUR - Einzelne Tour # ============================================ # Parameter: # id: String! - Tour UUID (required) # ============================================ query Tour { tour(id: "fe54be8f-e98f-42bb-a21d-16daba096a7e") { id name abstract url routeType difficulty season distance duration ascent descent geodataUrl imageUrl providerName landscapes } } # ============================================ # ATTRACTIONS - Sehenswürdigkeiten # ============================================ # Filter-Optionen (alle optional): # q: String - Suche in Name/Abstract # season: String - summer, winter, spring, autumn # sportType: String - hike, toboggan, bathingandswimming, etc. # experienceType: String - adventure, nature, active, culture # neededTime: String - lessthan1hour, between12hours, 2to4hourshalfday # childrenAge: String - 0to5years, 6to9years, 10to13years, 14plus # isOutdoor: Boolean - Nur Outdoor Attraktionen # isIndoor: Boolean - Nur Indoor Attraktionen # isWheelchairAccessible: Boolean # isAccessibleForFree: Boolean # nearLat: Float - Latitude für Geo-Suche # nearLng: Float - Longitude für Geo-Suche # radiusKm: Float - Radius in km (default: 50) # limit: Int - Max Ergebnisse (default: 50, max: 500) # offset: Int - Pagination Offset # ============================================ query Attractions { attractions(season: "summer", isOutdoor: true, limit: 20) { data { id name abstract description url latitude longitude locality postalCode contactName contactPhone contactEmail contactUrl touristType seasons sportTypes neededTime childrenAges difficulty natureTypes experienceTypes views isAccessibleForFree isWheelchairAccessible isIndoor isOutdoor suitableFor seasonStart seasonEnd imageUrl images destinationId lastUpdated } total hasMore pagination { total limit offset page totalPages } meta { locale lastSync source } } } # ============================================ # SINGLE ATTRACTION - Einzelne Sehenswürdigkeit # ============================================ # Parameter: # id: String! - Attraction UUID (required) # ============================================ query Attraction { attraction(id: "fff92c7b-0525-46b4-8e04-fbf9a62abf5b") { id name abstract description url latitude longitude locality seasons sportTypes experienceTypes isAccessibleForFree isWheelchairAccessible imageUrl images } }