---
title: "GET /site/published"
method: GET
path: "/site/published"
tags: ["Site"]
---

# GET /site/published

`GET /site/published`

## Request

- Base URL: `https://api.aisle.wedding/v1`
- URL: `https://api.aisle.wedding/v1/site/published`
- Auth: HTTP bearer

## Response `200`

Success.

- object
  - `data` PublishedSite, required
    - `wedding` Wedding, required
      - `id` string, required
      - `slug` string, required
      - `partner_1_name` string, required
      - `partner_2_name` string, required
      - `couple_display_name` string, nullable, required
      - `wedding_date` string, date, nullable, required: A calendar day the couple owns in the venue's zone, with no instant behind it. It is the same day for every reader.
      - `wedding_end_date` string, date, nullable, required: A calendar day the couple owns in the venue's zone, with no instant behind it. It is the same day for every reader.
      - `timezone` string, nullable, required: The IANA zone of the venue, such as `Europe/Rome`. Every instant this API returns is meant to be read in this zone. Null on a wedding with no venue yet, in which case instants were written against UTC.
      - `currency` string, required
      - `location` string, nullable, required
      - `venue` object, required
        - `name` string, nullable
        - `place_id` string, nullable
        - `latitude` string, nullable
        - `longitude` string, nullable
        - `city` string, nullable
        - `country` string, nullable
      - `room_selection_mode` string, required
      - `guest_pays_platform_fee` boolean, required
      - `room_payment_on_rsvp` boolean, required: When true, a guest's yes on the couple's Aisle site waits for the first payment on their room. `PUT /v1/guests/{guest_id}/rsvp` does not apply this rule.
      - `public_registry_enabled` boolean, required
      - `published` boolean, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, 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` Event[], 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
      - `visibility` 'public' | 'invite_only' | 'internal', required
      - `audience_tags` string[], required
      - `audience_property_ids` string[], required
      - `transport_note` string, nullable, required
      - `transport_legs` object[], required
        - `id` string, required
        - `location` string, required
        - `time` 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.
        - `note` string, nullable, required
        - `audience_tags` string[], required
        - `audience_properties` string[], required
        - `audience_undecided` boolean
      - `sort_order` integer, required
      - `seating_not_required` boolean, required
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required

## 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.
- `409`: The request collided with the current state of the resource.
- `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)
