# get_conversation: Get a conversation

Read your whole conversation with one person. This action only reads; it changes nothing. Plan: Free and Connect.

```
POST https://api.heyreagent.com/v1/actions/get_conversation
Authorization: Bearer YOUR_KEY
content-type: application/json

{
  "conversationUrl": "PASTE_PROFILE_LINK_HERE"
}
```

## What you give it

- `conversationUrl` (needed): a conversation link or a profile link. The other person's LinkedIn profile URL (https://linkedin.com/in/…) — preferred — or a /messaging/thread/ URL. Where to get it: Open the person's profile on LinkedIn and copy the address from your browser. It looks like https://www.linkedin.com/in/their-name Or: Run `search_people` and use `people[].profileUrl`.
- `connectionId` (optional): a connection id. Which of your senders owns this conversation (its linkedinConnections _id). Omit to search your live senders; for a live fetch the first live sender is used. Where to get it: Run `list_linkedin_accounts` and use `accounts[].id`.
- `refresh` (optional): true or false. true = fetch live from LinkedIn even if cached. false (default) = return the cached thread when available, else fetch live.

## What you get back

- `source`
- `connectionId`: a connection id
- `exists`
- `participant`
- `chatId`: a chat id
- `inbox`
- `messageCount`
- `messages`
- `note`

## Good to know

- chatId and participant come back only when source is "live". An answer from the stored copy (source "cache") has neither; refresh true forces a live read.
- A linkedin.com/messaging/thread/… link works only for a stored conversation. For a live read pass the person's profile link.
- For an InMail, Sales Navigator or Recruiter conversation the answer adds replyWith with the chatId: reply there with send_chat_message. send_message by profile link would start an ordinary conversation instead.
- exists false with uncertain true means it could not be checked, not that there is no conversation.

Page: https://heyreagent.com/docs/actions/get_conversation