---
title: "Create an invitation code"
method: POST
path: "/guest-access"
tags: ["Guest access"]
---

# Create an invitation code

`POST /guest-access`

## Request

- Base URL: `https://api.aisle.wedding/v1`
- URL: `https://api.aisle.wedding/v1/guest-access`
- Auth: HTTP bearer

Supply one guest ID for individual access or multiple guest IDs for a shared group. Every guest must belong to the API key wedding. Membership does not change parties, invitations or replies. The generated code is shown once; save it securely for the invitation. Requires write scope and preview access. No idempotency key is stored: after a lost response list and reconcile, then rotate the matching credential to recover access rather than blindly creating another.

## Request body

- GuestAccessCreate
  - `name` string, nullable
  - `guest_ids` GuestId[], required
  - `expires_at` string, date-time: An RFC 3339 UTC timestamp with milliseconds.

## Response `201`

Create an invitation code

- object
  - `data` GuestAccessIssued, required
    - `access` GuestAccess, required
      - `id` string, required
      - `name` string, nullable, required
      - `guest_ids` GuestId[], required
      - `expires_at` string, date-time, required: An RFC 3339 UTC timestamp with milliseconds.
      - `revoked_at` string, date-time, required: An RFC 3339 UTC timestamp with milliseconds.
      - `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.
    - `code` string, required: Generated invitation secret, returned only on creation or rotation. Save it securely; it cannot be read again.

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