---
title: "Connect Vxt"
method: POST
path: "/vxt/connect"
tags: ["VXT"]
---

# Connect Vxt

`POST /vxt/connect`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/vxt/connect`
- Auth: none declared

Connect VXT integration by validating + storing the user's refresh token.

Customer-facing — any admin user in the customer can connect.

## Request body

- VXTConnectRequest: Request to connect the VXT integration. The user pastes the refresh token retrieved from VXT's web app (see VXT_INTEGRATION_GUIDE.md §Onboarding — Option A).
  - `refresh_token` string, required: Firebase refresh token obtained from app.vxt.co.nz

## Response `200`

Successful Response

- VXTStatus: VXT connection status for the current customer.
  - `connected` boolean, required
  - `status` string, nullable: connected | disconnected | error
  - `connected_at` string, nullable
  - `vxt_email` string, nullable: Email of the VXT user whose refresh token is stored
  - `last_successful_call_at` string, nullable
  - `last_error_msg` string, nullable
  - `webhook_url` string, nullable: Stable webhook URL to paste into VXT Settings → Webhooks (same for all customers)
  - `webhook_token` string, nullable: Per-customer bearer token. Customer pastes this into VXT as 'Bearer <token>' in the Authorization header of the webhook.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/openintake/apis/openintake-api.md) - [All operations](https://skmtc.dev/openintake/apis/openintake-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openintake/apis/openintake-api/revisions/de90a8dcbc07?raw)
