# list_facilities

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

`GET /v1/guides/{productId}/facilities` · MCP tool `list_facilities` · scope `read` · stable · since 2026-09-17

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).

## Path parameters

- `productId` (string, required): Id of the guide (a product of type map). From list_guides or create_guide.

## Returns

200.

- `productId` (string, required): The guide's id.
- `facilities` (array of Place, required): Every place, by name.
  Fields of Place: https://developers.sceniq.earth/fields/place.md

## Examples

### Every place of a guide, by name

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

MCP `tools/call`:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_facilities",
    "arguments": {
      "productId": "j5738kd1q9x2m7v4c6b8n0p3r5t1w9y2"
    }
  }
}
```

Response 200:

```json
{
  "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

- `invalid_argument` (400): A 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).
- `unauthenticated` (401): The request carries no key. Send it as Authorization: Bearer sk_sceniq_... (or X-Api-Key).
- `invalid_api_key` (401): The key is unknown, revoked or expired.
- `forbidden` (403): The key belongs to a creator account that is no longer active.
- `not_found` (404): The id does not exist or belongs to another creator. The two answers are identical on purpose, so ids never reveal what exists.
- `rate_limited` (429): Over a limit: requests per key per minute, per creator per hour, uploads per key per minute, or check_links per guide per hour.
- `internal_error` (500): An unexpected failure. The message is hidden on purpose.

Reference: https://developers.sceniq.earth/reference/list_facilities
