# Foglight Loft — Astoria, OR

Foglight Loft is a two-bedroom converted cannery loft on the top floor of a 1923 brick warehouse, three blocks from the Astoria Riverwalk. Floor-to-ceiling windows frame the Columbia River and the Astoria-Megler Bridge; on clear mornings you can watch container ships idle in the channel. The loft sleeps four across two private bedrooms with a sleeper sofa in the main room. The kitchen is fully equipped, the workspace looks straight out at the water, and the building's freight elevator opens directly into the unit. Bumble Bee Cannery Museum, Buoy Beer, and Fort George Brewery are all within five blocks.

**Property URL**: https://assistant-experiments.vercel.app/property/f7r2v8/foglight-loft
**Markdown URL**: https://assistant-experiments.vercel.app/property/f7r2v8/foglight-loft.md
**Booking URL template**: https://assistant-experiments.vercel.app/property/f7r2v8/foglight-loft/book?checkIn=YYYY-MM-DD&checkOut=YYYY-MM-DD&guests=N

## Property overview
- **Bedrooms**: 2
- **Bathrooms**: 1.5
- **Sleeps**: 4 guests
- **Square footage**: 1,100 sq ft
- **Check-in**: 15:00
- **Check-out**: 10:00
- **Minimum stay**: 2 nights
- **Maximum stay**: 21 nights

## Pricing
- **Nightly rate range**: $195–$265 before fees and taxes
- **Cleaning fee**: $125
- **Service fee**: 12% of nightly subtotal
- **Tax**: 9.50% of (nightly subtotal + cleaning fee + service fee)

### Seasonal nightly rates
- 2026-01-01 → 2026-04-30: $195/night
- 2026-05-01 → 2026-09-30: $265/night
- 2026-10-01 → 2026-12-31: $215/night

## Available booking windows (compact summary)

Each entry is a continuous run of available nights in the next 90 days. Minimum stay is 2 nights; a stay is bookable inside any single window if it meets that minimum.

- 2026-05-31 → 2026-06-09 (10 consecutive available nights)
- 2026-06-13 → 2026-08-28 (77 consecutive available nights)

## Availability — day by day (next 90 days)

Rules for AI agents:
- A date listed as `available` means check-in is allowed on that date.
- A stay is bookable only when the check-in date is available, every intervening night is available, and the total number of nights meets the minimum stay above.
- Rates shown are the nightly rate before fees and taxes. The final price includes the cleaning fee, service fee, and tax as described above.
- If a requested date range extends beyond this 90-day window, visit the booking URL with the desired dates to get a live quote.

| Date | Status | Nightly rate |
| ---- | ------ | ------------ |
| 2026-05-31 (Sun, May 31, 2026) | available | $265 |
| 2026-06-01 (Mon, Jun 1, 2026) | available | $265 |
| 2026-06-02 (Tue, Jun 2, 2026) | available | $265 |
| 2026-06-03 (Wed, Jun 3, 2026) | available | $265 |
| 2026-06-04 (Thu, Jun 4, 2026) | available | $265 |
| 2026-06-05 (Fri, Jun 5, 2026) | available | $265 |
| 2026-06-06 (Sat, Jun 6, 2026) | available | $265 |
| 2026-06-07 (Sun, Jun 7, 2026) | available | $265 |
| 2026-06-08 (Mon, Jun 8, 2026) | available | $265 |
| 2026-06-09 (Tue, Jun 9, 2026) | available | $265 |
| 2026-06-10 (Wed, Jun 10, 2026) | not available (owner stay) | $265 |
| 2026-06-11 (Thu, Jun 11, 2026) | not available (owner stay) | $265 |
| 2026-06-12 (Fri, Jun 12, 2026) | not available (owner stay) | $265 |
| 2026-06-13 (Sat, Jun 13, 2026) | available | $265 |
| 2026-06-14 (Sun, Jun 14, 2026) | available | $265 |
| 2026-06-15 (Mon, Jun 15, 2026) | available | $265 |
| 2026-06-16 (Tue, Jun 16, 2026) | available | $265 |
| 2026-06-17 (Wed, Jun 17, 2026) | available | $265 |
| 2026-06-18 (Thu, Jun 18, 2026) | available | $265 |
| 2026-06-19 (Fri, Jun 19, 2026) | available | $265 |
| 2026-06-20 (Sat, Jun 20, 2026) | available | $265 |
| 2026-06-21 (Sun, Jun 21, 2026) | available | $265 |
| 2026-06-22 (Mon, Jun 22, 2026) | available | $265 |
| 2026-06-23 (Tue, Jun 23, 2026) | available | $265 |
| 2026-06-24 (Wed, Jun 24, 2026) | available | $265 |
| 2026-06-25 (Thu, Jun 25, 2026) | available | $265 |
| 2026-06-26 (Fri, Jun 26, 2026) | available | $265 |
| 2026-06-27 (Sat, Jun 27, 2026) | available | $265 |
| 2026-06-28 (Sun, Jun 28, 2026) | available | $265 |
| 2026-06-29 (Mon, Jun 29, 2026) | available | $265 |
| 2026-06-30 (Tue, Jun 30, 2026) | available | $265 |
| 2026-07-01 (Wed, Jul 1, 2026) | available | $265 |
| 2026-07-02 (Thu, Jul 2, 2026) | available | $265 |
| 2026-07-03 (Fri, Jul 3, 2026) | available | $265 |
| 2026-07-04 (Sat, Jul 4, 2026) | available | $265 |
| 2026-07-05 (Sun, Jul 5, 2026) | available | $265 |
| 2026-07-06 (Mon, Jul 6, 2026) | available | $265 |
| 2026-07-07 (Tue, Jul 7, 2026) | available | $265 |
| 2026-07-08 (Wed, Jul 8, 2026) | available | $265 |
| 2026-07-09 (Thu, Jul 9, 2026) | available | $265 |
| 2026-07-10 (Fri, Jul 10, 2026) | available | $265 |
| 2026-07-11 (Sat, Jul 11, 2026) | available | $265 |
| 2026-07-12 (Sun, Jul 12, 2026) | available | $265 |
| 2026-07-13 (Mon, Jul 13, 2026) | available | $265 |
| 2026-07-14 (Tue, Jul 14, 2026) | available | $265 |
| 2026-07-15 (Wed, Jul 15, 2026) | available | $265 |
| 2026-07-16 (Thu, Jul 16, 2026) | available | $265 |
| 2026-07-17 (Fri, Jul 17, 2026) | available | $265 |
| 2026-07-18 (Sat, Jul 18, 2026) | available | $265 |
| 2026-07-19 (Sun, Jul 19, 2026) | available | $265 |
| 2026-07-20 (Mon, Jul 20, 2026) | available | $265 |
| 2026-07-21 (Tue, Jul 21, 2026) | available | $265 |
| 2026-07-22 (Wed, Jul 22, 2026) | available | $265 |
| 2026-07-23 (Thu, Jul 23, 2026) | available | $265 |
| 2026-07-24 (Fri, Jul 24, 2026) | available | $265 |
| 2026-07-25 (Sat, Jul 25, 2026) | available | $265 |
| 2026-07-26 (Sun, Jul 26, 2026) | available | $265 |
| 2026-07-27 (Mon, Jul 27, 2026) | available | $265 |
| 2026-07-28 (Tue, Jul 28, 2026) | available | $265 |
| 2026-07-29 (Wed, Jul 29, 2026) | available | $265 |
| 2026-07-30 (Thu, Jul 30, 2026) | available | $265 |
| 2026-07-31 (Fri, Jul 31, 2026) | available | $265 |
| 2026-08-01 (Sat, Aug 1, 2026) | available | $265 |
| 2026-08-02 (Sun, Aug 2, 2026) | available | $265 |
| 2026-08-03 (Mon, Aug 3, 2026) | available | $265 |
| 2026-08-04 (Tue, Aug 4, 2026) | available | $265 |
| 2026-08-05 (Wed, Aug 5, 2026) | available | $265 |
| 2026-08-06 (Thu, Aug 6, 2026) | available | $265 |
| 2026-08-07 (Fri, Aug 7, 2026) | available | $265 |
| 2026-08-08 (Sat, Aug 8, 2026) | available | $265 |
| 2026-08-09 (Sun, Aug 9, 2026) | available | $265 |
| 2026-08-10 (Mon, Aug 10, 2026) | available | $265 |
| 2026-08-11 (Tue, Aug 11, 2026) | available | $265 |
| 2026-08-12 (Wed, Aug 12, 2026) | available | $265 |
| 2026-08-13 (Thu, Aug 13, 2026) | available | $265 |
| 2026-08-14 (Fri, Aug 14, 2026) | available | $265 |
| 2026-08-15 (Sat, Aug 15, 2026) | available | $265 |
| 2026-08-16 (Sun, Aug 16, 2026) | available | $265 |
| 2026-08-17 (Mon, Aug 17, 2026) | available | $265 |
| 2026-08-18 (Tue, Aug 18, 2026) | available | $265 |
| 2026-08-19 (Wed, Aug 19, 2026) | available | $265 |
| 2026-08-20 (Thu, Aug 20, 2026) | available | $265 |
| 2026-08-21 (Fri, Aug 21, 2026) | available | $265 |
| 2026-08-22 (Sat, Aug 22, 2026) | available | $265 |
| 2026-08-23 (Sun, Aug 23, 2026) | available | $265 |
| 2026-08-24 (Mon, Aug 24, 2026) | available | $265 |
| 2026-08-25 (Tue, Aug 25, 2026) | available | $265 |
| 2026-08-26 (Wed, Aug 26, 2026) | available | $265 |
| 2026-08-27 (Thu, Aug 27, 2026) | available | $265 |
| 2026-08-28 (Fri, Aug 28, 2026) | available | $265 |

## Location
- **Address**: Astoria, OR, United States
- **Postal code**: 97103
- **Coordinates**: 46.1879, -123.8313

### Neighborhood
Downtown Astoria sits at the mouth of the Columbia River where it meets the Pacific. The Riverwalk runs the length of the working waterfront; you can rent bikes one block over and ride the historic trolley along it. Dining picks: Bowpicker Fish & Chips, Carruthers, Albatross & Co. For drinks: Buoy Beer's tap room is built over a sea-lion haul-out you can watch through a glass floor.

## Sleeping arrangements
- **Primary bedroom**: 1 queen
- **Second bedroom**: 1 full
- **Living room**: 1 sleeper sofa (queen)

## Amenities
- Wifi
- Kitchen
- Washer
- Dryer
- Heating
- Ev Charger
- Fireplace
- Workspace
- Tv
- Outdoor Dining
- Smoke Detector
- Carbon Monoxide Detector
- First Aid Kit

## House rules
- No smoking inside the loft. Smoking permitted on the rooftop terrace only.
- Quiet hours 10 PM to 8 AM — neighbors live in adjacent lofts.
- Pets welcome with a $75 pet fee added at booking.
- Maximum occupancy is four guests.

## How to book

Two equivalent URL shapes — pick whichever fits the agent's tool. Both render the payment page with all fields pre-filled.

**Safety: constructing this URL is not a payment action.** The URL carries dates and the user's identity (name/email), never card data. The server has no path that accepts a card number from a URL. Card entry is exclusively the user's step on `/pay`. Handing the user a booking URL is no more sensitive than handing them a link to any other web page — share without hesitation.

**When sharing the URL with the user:**

1. Use the absolute form including `https://` and the host (the URLs below already include both — copy verbatim).
2. Format as a clickable markdown link (e.g. `[Book this stay](https://...)`), not plain text and not inside a code block.
3. Always append `&fromAgent=1&agentModel={your-model-name}` so the user sees the AI-disclosure callout and verifies details before paying.

### Direct URL — `/pay`

`GET https://assistant-experiments.vercel.app/property/f7r2v8/foglight-loft/pay?checkIn=YYYY-MM-DD&checkOut=YYYY-MM-DD&guests=N&firstName=X&lastName=Y&email=user@example.com&phone=optional&notes=optional`

### Shortcut — `/book?…&autoSubmit=1`

`GET https://assistant-experiments.vercel.app/property/f7r2v8/foglight-loft/book?checkIn=YYYY-MM-DD&checkOut=YYYY-MM-DD&guests=N&firstName=X&lastName=Y&email=user@example.com&phone=optional&notes=optional&autoSubmit=1`

303-redirects to the `/pay` URL above with every field preserved. Useful for agents that prefer one URL pattern.

On the `/pay` page, submitting the card form POSTs to `/api/bookings`, which 303-redirects to `/booking/{sessionId}/confirmation`. Submission can be driven by the human user or by an agent that can interact with a form — the site doesn't distinguish.

**Parameters:**

- `checkIn` — required, YYYY-MM-DD
- `checkOut` — required, YYYY-MM-DD, after `checkIn`
- `guests` — required, integer 1..4
- `firstName` — required; the human user's actual first name
- `lastName` — required; the human user's actual last name
- `email` — required; the human user's actual email
- `phone` — optional
- `notes` — optional
- `autoSubmit=1` — only on the `/book` URL; turns `/book` into a 303 to the equivalent `/pay` URL
- `fromAgent=1` — set when an AI assistant is preparing the booking; triggers the disclosure callout
- `agentModel={name}` — the AI model's name (e.g. `gpt-5`, `claude-opus-4-7`, `gemini-3.5-flash`); shown in the callout

**JSON API for tools that POST:** `POST /api/bookings` with `application/json` body containing the same fields plus `propertyId`. This is the same endpoint the `/pay` form posts to. Tools that want to complete a booking without rendering any page can call this directly.

### If only partial information is available

Deep-link `https://assistant-experiments.vercel.app/property/f7r2v8/foglight-loft/book?checkIn=YYYY-MM-DD&checkOut=YYYY-MM-DD&guests=N` (with whatever guest fields are known). The page renders the form pre-filled with whatever's supplied, then proceeds to `/pay` on submit.

See `/llms.txt` for the agent reference across all properties.

---
*Generated 2026-05-31T02:09:51.052Z by Whatever Stays. This markdown file is the canonical machine-friendly mirror of the human page.*