Skip to content

Update a guest-registration form in your API scope.

PUT
/v1/forms/{id}

Updates an existing form, running the same safety pipeline as the in-app flow. Requires a read-write key (a read-only key returns 403). The form and the target listingId (a form may be moved to another in-scope listing) must both be in scope, or the request returns 404 with no existence disclosure. PUT targets a specific form id and is therefore naturally idempotent; it carries no Idempotency-Key.

id
required
string format: uuid

The form id (UUID).

The body for updating a guest-registration form. The form id is the path parameter, not a body field.

object
listingId
required

The in-scope listing the form belongs to (a PUT may move the form to another in-scope listing).

string format: uuid
checkInDate
required

Check-in instant (ISO-8601, UTC).

string format: date-time
checkOutDate
required

Check-out instant (ISO-8601, UTC). Must be after checkInDate.

string format: date-time
numberOfGuests
required

Number of guests on the form.

integer format: int32
contactEmail

Optional guest contact email. Write-only — never returned in FormV1.

string format: email
nullable

The updated form.

The public projection of a guest-registration form. A curated, additive-only subset.

object
id
required

The form’s unique id.

string format: uuid
listingId
required

The id of the listing this form belongs to.

string format: uuid
publicId

The form’s public slug.

string
nullable
status
required

The public form status. Additive-only — new values may appear over time. Always handle UNKNOWN as a forward-compatible catch-all for any status this API version does not enumerate.

string
Allowed values: SENT COMPLETED ACCEPTED REJECTED VALIDATED INVALIDATED CHECKED_OUT UNKNOWN
checkInDate
string format: date-time
nullable
checkOutDate
string format: date-time
nullable
numberOfGuests
integer format: int32
nullable
numberOfVehicles
integer format: int32
nullable
numberOfPets
integer format: int32
nullable
createdAt
required

When the form was created (ISO-8601, UTC). The cursor ordering key.

string format: date-time

The request was malformed — an invalid cursor (INVALID_CURSOR) or a failed parameter validation (VALIDATION_ERROR, with field-level errors[]).

The single error envelope for every public-surface error response.

object
code
required

A stable, enumerated error code. Branch on this, never on message.

string
Allowed values: UNAUTHENTICATED FORBIDDEN RESOURCE_NOT_FOUND INVALID_CURSOR VALIDATION_ERROR PAYLOAD_TOO_LARGE RATE_LIMITED IDEMPOTENCY_KEY_REUSED
message
required

A human-readable description. May change without a contract break.

string
correlationId
required

A per-response id for support correlation.

string format: uuid
errors

Present only for VALIDATION_ERROR — the field-level validation failures.

Array<object>

One field-level validation failure.

object
field
required

The rejected field or query parameter name.

string
issue
required

What was wrong with it.

string

The API key is missing, malformed, revoked, or expired (UNAUTHENTICATED).

The single error envelope for every public-surface error response.

object
code
required

A stable, enumerated error code. Branch on this, never on message.

string
Allowed values: UNAUTHENTICATED FORBIDDEN RESOURCE_NOT_FOUND INVALID_CURSOR VALIDATION_ERROR PAYLOAD_TOO_LARGE RATE_LIMITED IDEMPOTENCY_KEY_REUSED
message
required

A human-readable description. May change without a contract break.

string
correlationId
required

A per-response id for support correlation.

string format: uuid
errors

Present only for VALIDATION_ERROR — the field-level validation failures.

Array<object>

One field-level validation failure.

object
field
required

The rejected field or query parameter name.

string
issue
required

What was wrong with it.

string

The key is authenticated but not permitted this operation (FORBIDDEN) — e.g. a read-only key on a write.

The single error envelope for every public-surface error response.

object
code
required

A stable, enumerated error code. Branch on this, never on message.

string
Allowed values: UNAUTHENTICATED FORBIDDEN RESOURCE_NOT_FOUND INVALID_CURSOR VALIDATION_ERROR PAYLOAD_TOO_LARGE RATE_LIMITED IDEMPOTENCY_KEY_REUSED
message
required

A human-readable description. May change without a contract break.

string
correlationId
required

A per-response id for support correlation.

string format: uuid
errors

Present only for VALIDATION_ERROR — the field-level validation failures.

Array<object>

One field-level validation failure.

object
field
required

The rejected field or query parameter name.

string
issue
required

What was wrong with it.

string

The resource does not exist, or the key has no access to it (RESOURCE_NOT_FOUND). The two cases are indistinguishable — no existence disclosure.

The single error envelope for every public-surface error response.

object
code
required

A stable, enumerated error code. Branch on this, never on message.

string
Allowed values: UNAUTHENTICATED FORBIDDEN RESOURCE_NOT_FOUND INVALID_CURSOR VALIDATION_ERROR PAYLOAD_TOO_LARGE RATE_LIMITED IDEMPOTENCY_KEY_REUSED
message
required

A human-readable description. May change without a contract break.

string
correlationId
required

A per-response id for support correlation.

string format: uuid
errors

Present only for VALIDATION_ERROR — the field-level validation failures.

Array<object>

One field-level validation failure.

object
field
required

The rejected field or query parameter name.

string
issue
required

What was wrong with it.

string

The request body exceeded the public-surface size or field-count limit (PAYLOAD_TOO_LARGE).

The single error envelope for every public-surface error response.

object
code
required

A stable, enumerated error code. Branch on this, never on message.

string
Allowed values: UNAUTHENTICATED FORBIDDEN RESOURCE_NOT_FOUND INVALID_CURSOR VALIDATION_ERROR PAYLOAD_TOO_LARGE RATE_LIMITED IDEMPOTENCY_KEY_REUSED
message
required

A human-readable description. May change without a contract break.

string
correlationId
required

A per-response id for support correlation.

string format: uuid
errors

Present only for VALIDATION_ERROR — the field-level validation failures.

Array<object>

One field-level validation failure.

object
field
required

The rejected field or query parameter name.

string
issue
required

What was wrong with it.

string

The per-key rate limit was exceeded (RATE_LIMITED). Retry after the interval in Retry-After.

The single error envelope for every public-surface error response.

object
code
required

A stable, enumerated error code. Branch on this, never on message.

string
Allowed values: UNAUTHENTICATED FORBIDDEN RESOURCE_NOT_FOUND INVALID_CURSOR VALIDATION_ERROR PAYLOAD_TOO_LARGE RATE_LIMITED IDEMPOTENCY_KEY_REUSED
message
required

A human-readable description. May change without a contract break.

string
correlationId
required

A per-response id for support correlation.

string format: uuid
errors

Present only for VALIDATION_ERROR — the field-level validation failures.

Array<object>

One field-level validation failure.

object
field
required

The rejected field or query parameter name.

string
issue
required

What was wrong with it.

string
Retry-After
integer format: int32

Integer seconds to wait before retrying (RFC 7231 delta-seconds form, always >= 1).