list_facilities

Places of a guide (stays, transport, food, parking).

GET/v1/guides/{productId}/facilities
MCP tool list_facilitiesScope: readStableSince 2026-09-17
Markdown

Planning places: kind (hut = a stay, cable_car = transport, activity = tours and activities), type, operator, raw cost and opening text, website, map link, pin, links, booking, conditions, transport and tour details, status, fees, hours, the routes' links and spotKeys (spots it serves directly).

curl "https://sceniq.earth/api/v1/guides/j5738kd1q9x2m7v4c6b8n0p3r5t1w9y2/facilities" \
  -H "Authorization: Bearer $SCENIQ_API_KEY"

Path parameters

Returns

200 OK with this object.

  • productIdstring · guide idrequired

    The guide's id.

  • facilitiesarray of Placerequired

    Every place, by name.

    Show 39 fieldsof Place
    • facilityIdstring · place idrequired

      The place's id.

    • kindstringrequired

      hut (a stay), cable_car (transport), activity (tours), food or parking.

      hutcable_caractivityfoodparking
    • typestring or nullrequired

      The sub-type (hotel, ferry, restaurant ...), or null for the kind's default.

    • spotKeysarray of stringsrequired

      The spots it serves directly, in order.

    • namestringrequired

      The place's name.

    • operatorstring or nullrequired

      Who runs it.

    • descriptionstring or nullrequired

      The place in the creator's words.

    • costRawstring or nullrequired

      The price as the creator states it.

    • openRawstring or nullrequired

      Season or hours as text.

    • websitestring or nullrequired

      The official site.

    • mapsUrlstring or nullrequired

      Map link.

    • extraPropsarray of ExtraProprequired

      Free label and value rows.

      Show 2 fieldsof ExtraProp
      • labelstringrequired

        The row's label, at most 60 characters.

      • valuestringrequired

        The row's value, at most 500 characters.

    • latnumber or nullrequired

      The place's own latitude.

    • lonnumber or nullrequired

      The place's own longitude.

    • osmIdstring or nullrequired

      OpenStreetMap reference.

    • googlePlaceIdstring or nullrequired

      Google place id.

    • countrystring or nullrequired

      ISO 3166-1 alpha-2 code.

    • timeZonestring or nullrequired

      IANA time zone, from the pin.

    • linksarray of GuideLinkrequired

      Links with a purpose.

      Show 5 fieldsof GuideLink
      • kindstringrequired

        What the link is for. official and website are the place's own pages; tickets and booking sell entry or rooms; status, timetable and tide carry live conditions; listing, social, authority and app cover the rest.

        officialwebsiteticketsbookingstatustimetabletidelistingsocialauthorityappother
      • labelstringoptional

        The link text buyers see, at most 60 characters. Without it the apps name the link by its kind.

      • urlstringoptional

        An http or https page. http is accepted with a warning.

      • valuestringoptional

        A channel that is not a URL, at most 200 characters, for example a WeChat mini program and its search term.

      • notestringoptional

        One line of context shown under the link, at most 300 characters.

    • bookingRequiredbooleanrequired

      true shows Booking required.

    • bookingUrlstring or nullrequired

      The page to book on.

    • extraKindsarray of stringsrequired

      Further roles of the same place.

      hutcable_caractivityfoodparking
    • insideIdstring or null · place idrequired

      The place this one sits inside.

    • needsParentTicketbooleanrequired

      true when entering needs the parent place's ticket.

    • conditionsPlaceConditions or nullrequired

      Conditions shown as chips.

      Show 6 fieldsof PlaceConditions
      • minAgenumberoptional

        Minimum age, a whole number from 1 to 99, shown as Age 16+.

      • guestsOnlybooleanoptional

        true shows Guests only.

      • swimmersOnlybooleanoptional

        true shows Swimmers only.

      • luggageKgnumberoptional

        The luggage limit in kilograms (1 to 200), shown as Luggage up to 15 kg.

      • soldAsPackagebooleanoptional

        true shows Sold as a package.

      • cashOnlybooleanoptional

        true shows Cash only.

    • costUnitstring or nullrequired

      What costRaw counts.

      per_personper_nightper_person_nightper_roomper_vehicleper_tripper_hourper_day
    • parkingParkingInfo or nullrequired

      Parking details.

      Show 2 fieldsof ParkingInfo
      • fillsBystringoptional

        When the lot is usually full, at most 80 characters (10:00, by 9 in summer), shown as Fills by.

      • rulestringoptional

        What is allowed, at most 300 characters (the only legal pullout).

    • transportTransportInfo or nullrequired

      Transport details.

      Show 6 fieldsof TransportInfo
      • stopsarray of objectsoptional

        Up to 30 stops, in the order buyers see them.

        Show 5 fields
        • namestringrequired

          The stop's name, at most 100 characters. Required.

        • latnumberoptional

          Latitude of the stop. Give lat and lon together; the stop then links to a map.

        • lonnumberoptional

          Longitude of the stop.

        • registerIdstringoptional

          The stop's id in a public register (an NSR or GTFS stop id), at most 80 characters.

        • notestringoptional

          One line about the stop, at most 200 characters.

      • serviceDaysarray of numbersoptional

        The weekdays it runs, 1 (Monday) to 7 (Sunday). On fewer than seven days buyers see Runs Mon to Fri.

      • timetableUrlstringoptional

        The timetable page (http or https), shown as a Timetable link.

      • timetableValidFromstringoptional

        The first day the timetable applies (YYYY-MM-DD).

      • timetableValidUntilstringoptional

        The last day the timetable applies (YYYY-MM-DD), not before timetableValidFrom. Buyers see Timetable valid until that day.

      • verifyBeforeTravelbooleanoptional

        true shows Check the timetable before you travel.

    • activityActivityInfo or nullrequired

      Tour and activity details.

      Show 8 fieldsof ActivityInfo
      • meetingPointstringoptional

        Where to meet, at most 200 characters, shown as Meeting point.

      • meetingLatnumberoptional

        Latitude of the meeting point. Give meetingLat and meetingLon together.

      • meetingLonnumberoptional

        Longitude of the meeting point.

      • durationMinnumberoptional

        How long it takes in minutes (1 to 100,000), shown as Duration.

      • departuresstringoptional

        When it departs, in words, at most 300 characters (daily at 09:00 and 14:00), shown as Departures.

      • requiredToSeebooleanoptional

        true when a tour is the only way to see the spot (authorized tours at Antelope Canyon), shown as Needed to see the spot.

      • authorizedBystringoptional

        Who authorizes the operator, at most 120 characters, shown as Authorized by <name>.

      • authorizedByUrlstringoptional

        The authorizing body's page (http or https), linked from that line.

    • gatewayTownstring or nullrequired

      The town the place sits in when it is far from the spot on purpose.

    • statusStatusNotice or nullrequired

      A closure notice.

      Show 6 fieldsof StatusNotice
      • statestringrequired

        open, partly_closed, closed or reopening. reopening with until means it reopens on that day.

        openpartly_closedclosedreopening
      • notestringoptional

        What is closed or changed, in the creator's words, at most 500 characters.

      • sincestringoptional

        The day the state began (YYYY-MM-DD).

      • untilstringoptional

        The day the state is expected to end (YYYY-MM-DD). Must not be before since.

      • sourceUrlstringoptional

        The page that announced it (http or https).

      • checkedOnstringoptional

        The day the value was last checked against its source (YYYY-MM-DD).

    • feesarray of Feerequired

      Fees and tickets.

      Show 14 fieldsof Fee
      • labelstringrequired

        What the fee is for, at most 80 characters (Adult entry, Car park, Boat transfer).

      • amountnumberoptional

        The price in major units (40, 12.5). Needs currency. Absent when the fee is free or left to the official page.

      • currencystringoptional

        ISO 4217 code (USD, EUR, ARS). Required with amount.

      • freebooleanoptional

        true for no charge. Cannot be combined with an amount.

      • seeOfficialbooleanoptional

        true for a price the guide leaves to the official page on purpose (it changes too often to copy).

      • perstringoptional

        What one amount pays for: person, vehicle, night, group, entry, day or hour.

        personvehiclenightgroupentrydayhour
      • audiencestringoptional

        Who pays this rate: all, adult, child, foreign, domestic, resident, student or senior.

        alladultchildforeigndomesticresidentstudentsenior
      • paidWherestringoptional

        Where it is paid: online, on_site or in_tour (part of a tour price).

        onlineon_sitein_tour
      • paymentstringoptional

        How it can be paid: cash_only, card_only or cash_or_card.

        cash_onlycard_onlycash_or_card
      • notestringoptional

        One line of context, at most 300 characters (free on the first Sunday of the month).

      • validFromstringoptional

        The first day the price applies (YYYY-MM-DD).

      • validUntilstringoptional

        The last day the price applies (YYYY-MM-DD). Readiness flags the row after it.

      • sourceUrlstringoptional

        The page the price comes from (http or https).

      • checkedOnstringoptional

        The day the value was last checked against its source (YYYY-MM-DD).

    • scheduleSchedule or nullrequired

      Structured opening hours.

      Show 8 fieldsof Schedule
      • hoursarray of HoursBandoptional

        Up to 24 bands; the last matching band wins.

        Show 11 fieldsof HoursBand
        • fromstringoptional

          First day of the band as MM-DD. Absent means the start of the year.

        • tostringoptional

          Last day of the band as MM-DD. May wrap over the new year (from 11-01 to 03-31).

        • weekdaysarray of numbersoptional

          The weekdays it covers, 1 (Monday) to 7 (Sunday). Absent means every day.

        • closedbooleanoptional

          true when the place is closed in this band. Otherwise open and close are required.

        • openstringoptional

          Opening time as HH:MM, or sunrise or sunset.

        • closestringoptional

          Closing time as HH:MM, or sunrise or sunset.

        • openOffsetMinnumberoptional

          Minutes around a sun anchor for open (-240 to 240; -60 is an hour before sunrise).

        • closeOffsetMinnumberoptional

          Minutes around a sun anchor for close (-240 to 240).

        • lastEntrystringoptional

          Last entry as HH:MM.

        • leaveBystringoptional

          The time visitors must be out as HH:MM.

        • notestringoptional

          One line for the band, at most 200 characters.

      • specialDaysarray of objectsoptional

        Up to 40 days that differ from the bands: a date or a rule, closed or with their own times.

        Show 6 fields
        • datestringoptional

          The day (YYYY-MM-DD). Give a date or a rule.

        • rulestringoptional

          A recurring day in words, at most 120 characters (first Sunday of the month).

        • closedbooleanoptional

          true when the place is closed that day.

        • openstringoptional

          Opening time that day as HH:MM, or sunrise or sunset.

        • closestringoptional

          Closing time that day as HH:MM, or sunrise or sunset.

        • notestringoptional

          One line for the day, at most 200 characters.

      • slotsobjectoptional

        Timed entry: entries every everyMin minutes from first to last.

        Show 5 fields
        • firststringrequired

          The first entry time as HH:MM.

        • laststringrequired

          The last entry time as HH:MM.

        • everyMinnumberrequired

          Minutes between entries.

        • capnumberoptional

          People per slot, when the source states it (1 to 100,000).

        • notestringoptional

          One line about booking a slot, at most 200 characters.

      • validFromstringoptional

        The first day these hours apply (YYYY-MM-DD).

      • validUntilstringoptional

        The last day these hours apply (YYYY-MM-DD).

      • sourceUrlstringoptional

        The page the hours come from (http or https).

      • checkedOnstringoptional

        The day the value was last checked against its source (YYYY-MM-DD).

      • notestringoptional

        A note for the whole schedule, at most 500 characters.

    • sourcesarray of SourceRefrequired

      Research evidence, never shown to buyers.

      Show 7 fieldsof SourceRef
      • urlstringoptional

        The page, API or archive copy the facts come from (http or https).

      • titlestringoptional

        A name for a source without a URL (a park leaflet, a phone call with the operator), at most 200 characters.

      • kindstringoptional

        page, api, archive, document or other.

        pageapiarchivedocumentother
      • capturedOnstringoptional

        The day the source was read (YYYY-MM-DD).

      • notestringoptional

        What the source says or why it was chosen, at most 500 characters.

      • supportsarray of stringsoptional

        Which facts it backs, up to 12 entries of at most 60 characters (fees, arrival.operating, lat/lon).

      • conflictbooleanoptional

        true when this source disagrees with another on the facts it backs. Say which one the value follows in note or reviewNotes.

    • reviewNotesstring or nullrequired

      Notes for the creator's review, never shown to buyers.

    • factsCheckedOnstring or nullrequired

      The day the facts were last checked (YYYY-MM-DD).

    • reviewBystring or nullrequired

      The day the facts need a new check (YYYY-MM-DD).

    • createdAtnumberrequired

      When the row was created (Unix time in milliseconds).

    • updatedAtnumberrequired

      When the row last changed (Unix time in milliseconds).

Response 200
{
  "productId": "j5738kd1q9x2m7v4c6b8n0p3r5t1w9y2",
  "facilities": [
    {
      "facilityId": "km7d4f6g8h0j2k4k6z8x0c2v4b6n8m0q",
      "kind": "parking",
      "type": "parking_lot",
      "spotKeys": [
        "01M2Z1G0Y0QG7M2V6N9R3T5W8Y"
      ],
      "name": "Fairy Falls trailhead parking",
      "operator": null,
      "description": "Gravel lot at the south end of the Fountain Freight Road, room for about 50 cars.",
      "costRaw": "Included in the park entrance fee",
      "openRaw": "Mid April to early November, with the park roads",
      "website": null,
      "mapsUrl": "https://maps.apple.com/?ll=44.5156,-110.8326&q=Fairy%20Falls%20Trailhead",
      "extraProps": [],
      "lat": 44.5156,
      "lon": -110.8326,
      "osmId": null,
      "googlePlaceId": null,
      "country": "US",
      "timeZone": "America/Denver",
      "links": [],
      "bookingRequired": false,
      "bookingUrl": null,
      "extraKinds": [],
      "insideId": null,
      "needsParentTicket": false,
      "conditions": null,
      "costUnit": null,
      "parking": {
        "fillsBy": "09:30 in July and August",
        "rule": "Day use only. No overnight parking."
      },
      "transport": null,
      "activity": null,
      "gatewayTown": null,
      "status": null,
      "fees": [],
      "schedule": null,
      "sources": [],
      "reviewNotes": null,
      "factsCheckedOn": "2026-09-20",
      "reviewBy": null,
      "createdAt": 1789895640000,
      "updatedAt": 1790586840000
    },
    {
      "facilityId": "km73j9h5g1f7d3s9a5p1p7j3v9y5t1r7",
      "kind": "hut",
      "type": "hotel",
      "spotKeys": [
        "01M2Z1G0Y0QG7M2V6N9R3T5W8Y"
      ],
      "name": "Old Faithful Inn",
      "operator": "Yellowstone National Park Lodges",
      "description": "The 1904 log lodge next to Old Faithful, 15 minutes by car from the Fairy Falls trailhead. Old House rooms sell out first.",
      "costRaw": "From 190 USD a night, Old House room with a shared bath (summer 2026)",
      "openRaw": "Early May to early October",
      "website": "https://www.yellowstonenationalparklodges.com/lodging/summer-lodges/old-faithful-inn/",
      "mapsUrl": "https://maps.apple.com/?ll=44.4598,-110.8311&q=Old%20Faithful%20Inn",
      "extraProps": [],
      "lat": 44.4598,
      "lon": -110.8311,
      "osmId": null,
      "googlePlaceId": null,
      "country": "US",
      "timeZone": "America/Denver",
      "links": [
        {
          "kind": "booking",
          "label": "Book a room",
          "url": "https://www.yellowstonenationalparklodges.com/lodging/summer-lodges/old-faithful-inn/"
        },
        {
          "kind": "official",
          "label": "Old Faithful area (NPS)",
          "url": "https://www.nps.gov/yell/planyourvisit/exploreoldfaithful.htm"
        }
      ],
      "bookingRequired": true,
      "bookingUrl": "https://www.yellowstonenationalparklodges.com/lodging/summer-lodges/old-faithful-inn/",
      "extraKinds": [],
      "insideId": null,
      "needsParentTicket": false,
      "conditions": null,
      "costUnit": "per_night",
      "parking": null,
      "transport": null,
      "activity": null,
      "gatewayTown": null,
      "status": null,
      "fees": [],
      "schedule": {
        "hours": [
          {
            "closed": true,
            "note": "Closed in winter"
          },
          {
            "from": "05-08",
            "to": "10-04",
            "note": "Open to overnight guests. Check-in from 16:00."
          }
        ],
        "validFrom": "2026-05-08",
        "validUntil": "2026-10-04",
        "sourceUrl": "https://www.yellowstonenationalparklodges.com/lodging/summer-lodges/old-faithful-inn/",
        "checkedOn": "2026-09-20"
      },
      "sources": [
        {
          "url": "https://www.yellowstonenationalparklodges.com/lodging/summer-lodges/old-faithful-inn/",
          "kind": "page",
          "capturedOn": "2026-09-20",
          "supports": [
            "costRaw",
            "openRaw",
            "schedule"
          ]
        }
      ],
      "reviewNotes": null,
      "factsCheckedOn": "2026-09-20",
      "reviewBy": "2027-03-01",
      "createdAt": 1789895640000,
      "updatedAt": 1790586840000
    }
  ]
}

Errors

Every error is { error: { code, message } }. Act on the code.

  • 400invalid_argumentA required field is missing, a field is unknown, or a value does not match its type (the Convex validator's path and value are in the message).
  • 401unauthenticatedThe request carries no key. Send it as Authorization: Bearer sk_sceniq_... (or X-Api-Key).
  • 401invalid_api_keyThe key is unknown, revoked or expired.
  • 403forbiddenThe key belongs to a creator account that is no longer active.
  • 404not_foundThe id does not exist or belongs to another creator. The two answers are identical on purpose, so ids never reveal what exists.
  • 429rate_limitedOver a limit: requests per key per minute, per creator per hour, uploads per key per minute, or check_links per guide per hour.
  • 500internal_errorAn unexpected failure. The message is hidden on purpose.