---
title: "Submit Vibe Lead"
method: POST
path: "/api/vibe-search/lead"
tags: ["vibe-search"]
---

# Submit Vibe Lead

`POST /api/vibe-search/lead`

## Request

- Base URL: `https://ai.tacostreetlocating.com`
- URL: `https://ai.tacostreetlocating.com/api/vibe-search/lead`
- Auth: none declared

Turn an owned Vibe conversation into the canonical client handoff.

Client, phase, handoff, audit event, and notification-outbox records are
committed by the client-handoff module in one transaction. This adapter
never creates a tour and never releases the handoff outbox. When the
personalized sheet offer is on, the sheet request is recorded first.
Alexander is then paged on the existing operator-alert channel, which
does not text the renter. That page names a pricing sheet only when a
sheet request row was stored.

## Request body

- VibeLeadRequest: A renter handing us their details from inside the conversation. Two accepted shapes: the one-field capture card sends `contact` (a phone number OR an email — we work out which), older clients send name+phone/email. Name is optional either way: the follow-up call is what matters, and asking for a name measurably costs submits.
  - `session_id` string, required
  - `conversation_token` string, required
  - `name` string
  - `first_name` string, nullable
  - `contact` string, nullable
  - `phone` string, nullable
  - `email` string, nullable
  - `note` string, nullable
  - `reason` string, nullable
  - `move_in` string, nullable
  - `offer` 'sheet' | 'contact', nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/tacostreetlocating/apis/taco-street-locating-public-api.md) · [All operations](https://skmtc.dev/tacostreetlocating/apis/taco-street-locating-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tacostreetlocating/apis/taco-street-locating-public-api/revisions/e09e16f653cc?raw)
