## Get a chat by ID `client.Chats.Get(ctx, chatID) (*Chat, error)` **get** `/v3/chats/{chatId}` Retrieve a chat by its unique identifier. ### Parameters - `chatID string` ### Returns - `type Chat struct{…}` - `ID string` Unique identifier for the chat - `CreatedAt Time` When the chat was created - `DisplayName string` Display name for the chat. Defaults to a comma-separated list of recipient handles. Can be updated for group chats. - `Handles []ChatHandle` List of chat participants with full handle details. Always contains at least two handles (your phone number and the other participant). - `ID string` Unique identifier for this handle - `Handle string` Phone number (E.164) or email address of the participant - `JoinedAt Time` When this participant joined the chat - `Service ServiceType` Messaging service type - `const ServiceTypeiMessage ServiceType = "iMessage"` - `const ServiceTypeSMS ServiceType = "SMS"` - `const ServiceTypeRCS ServiceType = "RCS"` - `IsMe bool` Whether this handle belongs to the sender (your phone number) - `LeftAt Time` When they left (if applicable) - `Status ChatHandleStatus` Participant status - `const ChatHandleStatusActive ChatHandleStatus = "active"` - `const ChatHandleStatusLeft ChatHandleStatus = "left"` - `const ChatHandleStatusRemoved ChatHandleStatus = "removed"` - `IsArchived bool` Whether the chat is archived - `IsGroup bool` Whether this is a group chat - `UpdatedAt Time` When the chat was last updated - `HealthScore ChatHealthScore` **[BETA]** Health assessment for a chat. Higher `score` is healthier. `null` when a score isn't available yet. Scoring may change during beta. - `Reason string` Short summary of what's affecting the score. Empty when the score is 100. - `Score int64` Health score from 0 to 100. Higher is healthier. - `UpdatedAt Time` When this health score was last computed. - `Service ServiceType` Messaging service type ### Example ```go package main import ( "context" "fmt" "github.com/linq-team/linq-go" "github.com/linq-team/linq-go/option" ) func main() { client := linqgo.NewClient( option.WithAPIKey("My API Key"), ) chat, err := client.Chats.Get(context.TODO(), "550e8400-e29b-41d4-a716-446655440000") if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", chat.ID) } ``` #### Response ```json { "id": "550e8400-e29b-41d4-a716-446655440000", "created_at": "2024-01-15T10:30:00Z", "display_name": "+14155551234, +14155559876", "handles": [ { "id": "550e8400-e29b-41d4-a716-446655440010", "handle": "+14155551234", "joined_at": "2025-05-21T15:30:00.000Z", "service": "iMessage", "is_me": true, "left_at": "2019-12-27T18:11:19.117Z", "status": "active" }, { "id": "550e8400-e29b-41d4-a716-446655440011", "handle": "+14155559876", "joined_at": "2025-05-21T15:30:00.000Z", "service": "iMessage", "is_me": false, "left_at": "2019-12-27T18:11:19.117Z", "status": "active" } ], "is_archived": true, "is_group": true, "updated_at": "2024-01-15T10:30:00Z", "health_score": { "reason": "Not enough engagement", "score": 35, "updated_at": "2026-05-01T18:28:25Z" }, "service": "iMessage" } ```