# Participants ## Add a participant to a chat **post** `/v3/chats/{chatId}/participants` Add a new participant to an existing group chat. **Requirements:** - Group chats only (3+ existing participants) - New participant must support the same messaging service as the group - Cross-service additions not allowed (e.g., can't add RCS-only user to iMessage group) - For cross-service scenarios, create a new chat instead ### Path Parameters - `chatId: string` ### Body Parameters - `handle: string` Phone number (E.164 format) or email address of the participant to add ### Returns - `message: optional string` - `status: optional string` - `trace_id: optional string` ### Example ```http curl https://api.linqapp.com/api/partner/v3/chats/$CHAT_ID/participants \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $LINQ_API_V3_API_KEY" \ -d '{ "handle": "+12052499136" }' ``` #### Response ```json { "message": "Participant addition queued", "status": "accepted", "trace_id": "trace_id" } ``` ## Remove a participant from a chat **delete** `/v3/chats/{chatId}/participants` Remove a participant from an existing group chat. **Requirements:** - Group chats only - Must have 3+ participants after removal ### Path Parameters - `chatId: string` ### Body Parameters - `handle: string` Phone number (E.164 format) or email address of the participant to remove ### Returns - `message: optional string` - `status: optional string` - `trace_id: optional string` ### Example ```http curl https://api.linqapp.com/api/partner/v3/chats/$CHAT_ID/participants \ -X DELETE \ -H "Authorization: Bearer $LINQ_API_V3_API_KEY" ``` #### Response ```json { "message": "Participant removal queued", "status": "accepted", "trace_id": "trace_id" } ``` ## Domain Types ### Participant Add Response - `ParticipantAddResponse object { message, status, trace_id }` - `message: optional string` - `status: optional string` - `trace_id: optional string` ### Participant Remove Response - `ParticipantRemoveResponse object { message, status, trace_id }` - `message: optional string` - `status: optional string` - `trace_id: optional string`