🏔️ SwissActivities GraphQL API

Kopiere ein Query direkt in den GraphQL Playground - alle Felder sind bereits enthalten!

🔓 Open API

Keine Authentifizierung nötig! Die GraphQL API ist offen zugänglich.

Geschützt durch CORS - nur erlaubte Origins (*.swissactivities.com, localhost) können Queries ausführen.

🎯 Activities

Outdoor-Aktivitäten mit Buchungsinformationen

📌 Filter-Optionen (alle optional):

q: String locale: String typeId: String locationId: String supplierId: String attributeValue: String nearLat: Float nearLng: Float radiusKm: Float limit: Int offset: Int

📋 Komplettes Query (Copy & Paste):

# ============================================
# 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! (required) locale: String

📋 Komplettes Query:

# ============================================
# 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 verfügbaren Orte

📌 Parameter (alle optional):

locale: String limit: Int

📋 Komplettes Query:

# ============================================
# 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 (alle optional):

locale: String

📋 Komplettes Query:

# ============================================
# TYPES - Alle Aktivitätstypen
# ============================================
# Parameter:
#   locale: String      - Sprache (default: de-CH)
# ============================================

query Types {
  types(locale: "de-CH") {
    id
    title
    slug
  }
}

🎿 Wispo Stations (Skigebiete)

211 Schweizer Skigebiete mit Live-Daten

📌 Filter-Optionen (alle optional):

locale: String q: String limit: Int offset: Int

📋 Komplettes Query mit ALLEN Feldern:

# ============================================
# 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 nach ID

📌 Parameter:

id: Int! (required) locale: String

📋 Komplettes Query:

# ============================================
# 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)

2500 Touren aus MySwitzerland: Wandern, Mountainbike, Schneeschuh, Schlitteln etc.

📌 Filter-Optionen (alle optional):

q: String (Suche)
routeType: String (hike, mountainbike, bicycle, snowshoe, winterhiking, crosscountryskiing, sledging)
season: String (summer, winter)
difficulty: String (easy, medium, difficult)
nearLat: Float nearLng: Float radiusKm: Float (Geo-Suche)
limit: Int offset: Int

📋 Komplettes Query:

# ============================================
# 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 nach UUID

📌 Parameter:

id: String! (required)

📋 Komplettes Query:

# ============================================
# 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)

3381 Attraktionen aus MySwitzerland: Schluchten, Wasserfälle, Museen, Thermen etc.

📌 Filter-Optionen (alle optional):

q: String (Suche)
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 isIndoor: Boolean
isWheelchairAccessible: Boolean isAccessibleForFree: Boolean
nearLat: Float nearLng: Float radiusKm: Float
limit: Int offset: Int

📋 Komplettes Query:

# ============================================
# 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 nach UUID

📌 Parameter:

id: String! (required)

📋 Komplettes Query:

# ============================================
# 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
  }
}