---
title: "Exchange a durable connect session for a pit_ token"
method: POST
path: "/v1/users/connect-sessions/{session_id}/exchange"
tags: ["Users"]
---

# Exchange a durable connect session for a pit_ token

`POST /v1/users/connect-sessions/{session_id}/exchange`

## Request

- Base URL: `http://0.0.0.0:3000`
- URL: `http://0.0.0.0:3000/v1/users/connect-sessions/{session_id}/exchange`
- Auth: none declared

Creates a fresh short-lived pit_ token for the durable connect session. The token is consumed by the standard provider OAuth flow.

## Path parameters

- `session_id` string, uuid, required

## Request body

- object
  - `provider` 'gmail' | 'outlook' | 'slack' | 'google_calendar' | 'google_meet' | 'teams'

## Response `200`

Default Response

- object
  - `success` true, required
  - `data` object, required
    - `session_id` string, uuid, required
    - `user_id` string, uuid, required
    - `token` string, required
    - `expires_at` string, required

## Other responses

- `400`: Default Response
- `404`: Default Response
- `410`: Default Response
- `429`: Default Response
- `500`: Default Response

---

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