---
title: "Queue an RSVP to a Luma event"
method: POST
path: "/api/events/rsvp"
tags: ["events"]
---

# Queue an RSVP to a Luma event

`POST /api/events/rsvp`

## Request

- Base URL: `https://www.immersivecommons.com`
- URL: `https://www.immersivecommons.com/api/events/rsvp`
- Auth: HTTP bearer

Clerk session or agt_ token with `events:rsvp`. Queues an RSVP envelope for life-side processing (returns `queued`, not a confirmed Luma seat). IDEMPOTENT: a repeat within 7 days is recognized (`was_dup: true`) and no second envelope is written; an `Idempotency-Key` additionally replays the first result. Agent callers MUST supply `email` (no session fallback).

## Headers

- `Idempotency-Key` string

## Request body

- RsvpRequest
  - `event_url` string, required: https://luma.com/<slug>
  - `email` string: Required for agent callers (no session fallback); optional on the Clerk path.
  - `name` string

## Response `200`

RSVP queued (or recognized as a duplicate).

- QueueResponse: Shared shape for the queue-and-forget writes (rsvp, book).
  - `ok` boolean, required
  - `queued` boolean, required
  - `was_dup` boolean: True when semantic dedupe recognized this as a repeat within the window.
  - `rate` RateInfo: Per-token rate-limit snapshot returned by write endpoints.
    - `current` integer
    - `remaining` integer
    - `limit` integer
  - `via` 'clerk' | 'agent'
  - `note` string

## Other responses

- `400`: Bad event_url, missing email on the agent path, or validation error.
- `401`: Missing/invalid token or session.
- `403`: Token scope or live tier does not authorize events:rsvp.
- `413`: Body exceeds 8KB.
- `429`: Per-token rate limit exceeded.
- `500`: KV write failed.

---

[API](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api.md) · [All operations](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/revisions/be67c1f67c27?raw)
