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

# Connect Vxt

`POST /vxt/connect`

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/fastapi.md) · [All operations](https://skmtc.dev/openintake/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/openintake/fastapi/revisions/4a81645b59f6/schema)
