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

# GET /site/design

`GET /site/design`

## Request

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

## Response `200`

Success.

- object
  - `data` 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
          - `primary` string, required
          - `accent` string, required
          - `ground` string, nullable, required: Null: the stylesheet default.
          - `ink` string, nullable, required
          - `muted` string, nullable, required: Null: derived from ground and ink.
          - `rule` string, nullable, required
          - `swatches` object, required: Up to five named colours, by the name the couple gave each.
        - `type` object, required
          - `heading` string, required
          - `body` string, required
          - `names` string, required
          - `paragraph` string, required
          - `scale` number, required
          - `heading_style` string, required
          - `open` object, required
            - `heading` object, nullable, required
              - …
            - `body` object, nullable, required
              - …
            - `names` object, nullable, required
              - …
        - `shape` object, required
          - `radius` number, required
          - `motif` string, required
        - `rhythm` object, required
          - `spacing` number, required
          - `divider` string, required
        - `motion` object, required
          - `reveal` string, required
          - `cover` string, required
      - `page` object, required
        - `frame` string, required
        - `surface` string, required
        - `nav` object, required
          - `mode` string, required
          - `labels` boolean, required
          - `style` string, required
          - `cta` string, 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
          - `after` string, required: The chapter key it follows.
          - `block` string, 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.

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