---
title: "Wait for an exchange partner"
method: POST
path: "/exchange/queue"
tags: ["Exchange"]
---

# Wait for an exchange partner

`POST /exchange/queue`

## Request

- Base URL: `https://whatareyoudo.ing/api/v1`
- URL: `https://whatareyoudo.ing/api/v1/exchange/queue`
- Auth: HTTP bearer

From the account's own session only. Needs a verified phone number (EXCHANGE_PHONE_REQUIRED), current consent (EXCHANGE_CONSENT_REQUIRED) and no exchange in progress (EXCHANGE_ALREADY_ACTIVE). Pairs at once with the longest-waiting account in the same language with a verified phone number that neither blocks (by account or by phone number) nor has been paired with before, and where each side's safety settings allow the other; `exchange` is then the new exchange, otherwise null and the caller waits. Already queued answers with the existing queue status.

## Request body

- ExchangeQueueRequest
  - `locale` 'ja' | 'en' | 'de' | 'zh' | 'ar' | 'es' | 'fr' | 'hi' | 'id' | 'it' | 'ko' | 'pt' | 'ru' | 'tr' | 'vi', required

## Response `200`

OK

- object
  - `data` ExchangeJoinResult, required
    - `queue` ExchangeQueueStatus, required
      - `queued` boolean, required
      - `joinedAt` string, nullable, required
      - `locale` string, nullable, required
    - `exchange` object, nullable, required
      - `id` string, uuid, required
      - `status` 'active' | 'ended' | 'aborted', required
      - `endedReason` 'expired' | 'left' | 'blocked' | 'reported' | 'moderation' | 'ended_early', nullable, required
      - `startsAt` string, required
      - `endsAt` string, required
      - `writable` boolean, required
      - `groupId` string, uuid, required
      - `diaryId` string, uuid, required
      - `aliasProfileId` string, uuid, required
      - `aliasDisplayName` string, nullable, required
      - `partnerAliasDisplayName` string, nullable, required
      - `members` ExchangeMember[], required
        - `aliasDisplayName` string, nullable, required
        - `isMe` boolean, required
        - `left` boolean, required
      - `leftAt` string, nullable, required
  - `meta` object, required
    - `requestId` string, required

## Changes

- **2026-10-20** `a36285d04daa`: 1 info
  - added the required property `data/exchange/allOf[#/components/schemas/ExchangeSummary]/members` to the response with the `200` status
- **2026-10-20** `5babd76752f2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/whatareyoudo/apis/whatcha-api/changes/exchange/queue/post.md)

---

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