---
title: "Get the site as one named guest"
method: GET
path: "/guests/{guest_id}/site"
tags: ["Guests"]
---

# Get the site as one named guest

`GET /guests/{guest_id}/site`

## Request

- Base URL: `https://api.aisle.wedding/v1`
- URL: `https://api.aisle.wedding/v1/guests/{guest_id}/site`
- Auth: HTTP bearer

Returns only events, replies, invitations, and the room visible to the named guest. This endpoint has no anonymous or first-guest fallback.

## Response `200`

The personalized site payload.

- object
  - `data` PersonalizedGuestSite, required
    - `guest` PersonalizedGuest, required
      - `id` string, required
      - `first_name` string, required
      - `last_name` string, required
      - `rsvp_status` string, required
      - `rsvp_stage` string, nullable, required
      - `rsvp_responded_at` string, date-time, required: An RFC 3339 UTC timestamp with milliseconds.
      - `dietary_restrictions` string, nullable, required
      - `dietary_notes` string, nullable, required
      - `accommodation_id` string, required
      - `language` string, nullable, required
    - `site` Site, required
      - `slug` string, required
      - `published` boolean, required
      - `hero_image_url` string, nullable, required
      - `design` SiteDesign, required
        - `primary` string, required
        - `accent` string, required
        - `font_heading` string, required
        - `font_body` string, required
        - `ground` string, required
        - `ink` string, required
        - `muted` string, required
        - `rule` string, required
        - `radius` number, required
        - `cover` string, required
        - `nav_mode` string, required
        - `paragraph_font` 'heading' | 'body', required
        - `spacing_scale` number, required
        - `text_scale` number, required
        - `hero_text_color` string, nullable, required
        - `adjusted` object, required
          - `ink` boolean
          - `muted` boolean
          - `primary` boolean
        - `spec` SiteSpec
          - `version` 1, required
          - `preset` string, nullable, required: The template this look was last set from, or null.
          - `tokens` object, required
            - `palette` object, required
              - …
            - `type` object, required
              - …
            - `shape` object, required
              - …
            - `rhythm` object, required
              - …
            - `motion` object, required
              - …
          - `page` object, required
            - `frame` string, required
            - `surface` string, required
            - `nav` object, required
              - …
          - `sections` object, required: Each section by its chapter key (`masthead`, `around_town`).
          - `layers` object, required
            - `cover` string, nullable, required: The block drawn as the cover.
            - `backdrop` string, nullable, required: The block drawn behind the whole page.
            - `seams` object[], required
              - …
            - `sections` object, required: A section's block, by chapter key.
          - `blocks` SiteSpecBlock[], required
            - `id` string, required
            - `scope` 'section' | 'cover' | 'seam' | 'backdrop', required
            - `tier` 'markup' | 'scripted', required
            - `author` 'elena' | 'couple' | 'preset', required
            - `fallback` string, required: What draws in its place if it is removed or fails.
            - `reads` string[], required
            - `islands` string[], required: Platform parts drawn inside it, such as rsvp.
          - `legacy_document` boolean, required: True while a whole-page design is live: guests are served that page, which reads none of this.
      - `chapters` SiteChapter[], required
        - `key` string, required
        - `kind` 'fixed' | 'custom', required
        - `position` integer, required
        - `enabled` boolean, required
        - `content` object, required: Chapter settings in snake_case. On the dress chapter, show_gender_labels defaults to true; false hides For her / For him headings while retaining descriptions and mood boards. Chapter prose strings support selected-text links as [label](https://example.com/). This applies to standfirst, masthead.subhead, letter/stay/travel/custom body paragraphs, closing.note and guestbook.prompt, including their translations. Only HTTP(S) destinations without credentials, spaces or control characters are links; other markup stays literal text. Strings retain this notation in API reads and writes. Render text and validated links separately, never as raw HTML. For the travel chapter, photo_position is above-description (default) or below-description. Below places the optional photo after the standfirst and body paragraphs, before the airport list. Omit to keep the saved position; set null to restore the default. No photo means no image or extra spacing. For the masthead chapter, show_rsvp_button is an optional boolean, off when absent. True adds a cover link to RSVP on standard Aisle covers when the current viewer can access RSVP. Omit to preserve the setting; false or null turns it off. Read-only shared links and disabled RSVP never show it. Brief retains its existing RSVP link without adding a second button; custom HTML covers are unchanged.
    - `events` PersonalizedEvent[], required
      - `id` string, required
      - `name` string, required
      - `type` 'welcome_dinner' | 'ceremony' | 'reception' | 'brunch' | 'rehearsal' | 'cocktail_hour' | 'after_party' | 'activity' | 'other', required
      - `starts_at` string, date-time, required: An instant, not a wall clock. Format it in the wedding's `timezone` from `GET /wedding`, never in the reader's zone.
      - `ends_at` string, date-time, nullable, required: An instant, not a wall clock. Format it in the wedding's `timezone` from `GET /wedding`, never in the reader's zone.
      - `all_day` boolean, required: True for an all-day item, such as a travel day: it has a day and no time. `starts_at` is then the start of its first day in the wedding's `timezone` and `ends_at`, when set, the start of its last day; show the days, never midnight. On a write, any time sent with the days is dropped. Defaults to false.
      - `venue` object, required
        - `name` string, nullable
        - `address` string, nullable
        - `latitude` string, nullable
        - `longitude` string, nullable
      - `description` string, nullable, required
      - `images` string[], required
      - `dress_code_id` string, nullable, required
      - `meal_selection` object, required
        - `enabled` boolean
        - `deadline` string, date-time, nullable: An instant, not a wall clock. Format it in the wedding's `timezone` from `GET /wedding`, never in the reader's zone.
        - `options` object[]
          - `id` string, required
          - `name` string, required
          - `description` string
          - `dietary_tags` string[]
      - `ticket` object, required
        - `required` boolean
        - `price` string, nullable
        - `pay_later` boolean: When true, an attending reply is recorded before the ticket is paid and the ticket stays owed. When false, an attending reply to a ticketed event waits for a completed ticket payment.
      - `rsvp` object, required
        - `asks_separately` boolean
        - `options` object[], nullable
          - `id` string, required
          - `label` string, required
          - `counts_as` 'attending' | 'maybe' | 'declined', required
      - `transport_note` string, nullable, required
      - `transport_legs` GuestTransportLeg[], required
        - `id` string, required
        - `location` string, required
        - `time` string, date-time, nullable, required
        - `note` string, nullable, required
      - `sort_order` integer, required
      - `seating_not_required` boolean, required
    - `rsvp` GuestRsvp, required
      - `guest_id` string, required
      - `status` 'pending' | 'attending' | 'declined' | 'maybe', required
      - `stage` string, nullable, required
      - `responded_at` string, date-time, required: An RFC 3339 UTC timestamp with milliseconds.
      - `option_id` string, nullable, required
      - `option_label` string, nullable, required
      - `answers` object, required
      - `event_responses` GuestEventResponse[], required
        - `event_id` string, required
        - `attending` boolean, nullable, required
        - `option_id` string, nullable, required
        - `option_label` string, nullable, required
        - `meal_choice_id` string, nullable, required
        - `meal_notes` string, nullable, required
        - `updated_at` string, date-time, required: An RFC 3339 UTC timestamp with milliseconds.
    - `invitations` GuestInvitation[], required
      - `event_id` string, required
      - `invited` boolean, required
    - `room` Room, required
      - `id` string, required
      - `property_id` string, nullable, required
      - `name` string, required
      - `type` string, nullable, required
      - `description` string, nullable, required
      - `capacity` integer, required
      - `capacity_max` integer, nullable, required
      - `bed_config` string, nullable, required
      - `images` string[], required
      - `status` string, required
      - `booking_url` string, nullable, required
      - `booked_by_party_id` string, required
      - `stay` object, required
        - `check_in_date` string, nullable, required
        - `check_out_date` string, nullable, required
        - `check_in_time` string, nullable, required
        - `check_out_time` string, nullable, required
        - `check_in_notes` string, nullable, required
      - `rate` object, required
        - `requires_payment` boolean, required
        - `unit` string, required
        - `amount` string, nullable, required
      - `payment_schedule` object, required
        - `deposit_unit` string, nullable, required
        - `deposit_amount` string, nullable, required
        - `deposit_due_date` string, nullable, required
        - `balance_due_date` string, nullable, required
      - `created_at` string, date-time, required: An RFC 3339 UTC timestamp with milliseconds.
      - `updated_at` string, date-time, required: An RFC 3339 UTC timestamp with milliseconds.

## Other responses

- `400`: The request itself could not be read, such as a body that is not a JSON object. A field we refuse is validation_failed instead.
- `401`: The API key is missing, malformed, or no longer valid.
- `402`: The operation requires an active Aisle membership for this wedding.
- `403`: The key is valid but not permitted to do this.
- `404`: No such resource inside the key's wedding.
- `415`: A request body must be sent as application/json.
- `422`: The request was well-formed but a field was not acceptable. Every field at fault is named in error.details.
- `429`: Too many requests. Retry after the time given in Retry-After.
- `500`: Something went wrong on our side.

---

[API](https://skmtc.dev/aisle/apis/aisle-api.md) · [All operations](https://skmtc.dev/aisle/apis/aisle-api/llms.txt) · [OpenAPI document](https://skmtc.dev/aisle/apis/aisle-api/revisions/689a2f2420cc?raw)
