---
title: "List Bridge Customers"
method: GET
path: "/internal/bridge/customers"
tags: ["Internal"]
---

# List Bridge Customers

`GET /internal/bridge/customers`

## 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/internal/bridge/customers`
- Auth: none declared

Return all bridge-enabled customers with fresh VXT credentials.

The bridge polls this endpoint periodically to know which customers to
serve. Each entry includes a Firebase id_token that the bridge can use
directly on VXT's RTDB — the backend handles refresh via the shared
ensure_fresh_vxt_token helper.

## Response `200`

Successful Response

- BridgeCustomersResponse
  - `customers` BridgeCustomer[], required
    - `customer_id` string, required
    - `vxt_uid` string, required
    - `vxt_id_token` string, required
    - `vxt_id_token_expires_at` string, required
    - `transfer_via_org_phone` string, nullable, required

---

[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)
