IGPAPI
    Preparing search index...

    Type Alias DirectThreadGetByParticipantsResponse

    DirectThreadGetByParticipantsResponse:
        | DirectThreadGetByParticipantsThreadResponse
        | DirectThreadGetByParticipantsComposeResponse

    Two wire forms, selected by whether a dialog between the participants already exists:

    • Existing dialog — thread is present and carries the conversation (the previously verified shape, DirectThreadGetByParticipantsThreadResponse).
    • No dialog yet (fresh pair, observed 2026-10-12) — HTTP 200 with no thread and no thread_id anywhere in the payload: the server returns the pre-thread compose form the app renders on the compose screen — user cards, thread context items, reachability statuses, icebreakers, welcome message (DirectThreadGetByParticipantsComposeResponse).

    The compose fields were observed only on the compose form, so the thread form does not declare them. The call never creates the dialog; check thread for presence before reading either form.