> ## Documentation Index
> Fetch the complete documentation index at: https://docs.weav.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get message

> Requires a token with the external-api:read or external-api:write ability. id string required Format: uuid . cURL JavaScript Python PHP cURL JavaScript Python PHP 200 OK 200 OK 404 Not Found 401 Unauthorized id string Format: uuid . conversation_id string Format: uuid . sender_type string One of:…

```http
GET https://api.weav.com/v1/messages/{id}
```

Requires a token with the `external-api:read` or `external-api:write` ability.

## Path parameters

<ParamField path="id" type="string" required>
Format: `uuid`.
</ParamField>

## Request

<CodeGroup>

```bash cURL
curl --request GET \
  --url 'https://api.weav.com/v1/messages/{id}' \
  --header "Authorization: Bearer ${WEAV_API_TOKEN}"
```

```js JavaScript
const response = await fetch("https://api.weav.com/v1/messages/{id}", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.WEAV_API_TOKEN}`
  }
});
console.log(await response.json());
```

```python Python
import os
import requests

headers = {"Authorization": f"Bearer {os.environ['WEAV_API_TOKEN']}"}
response = requests.get("https://api.weav.com/v1/messages/{id}", headers=headers)
print(response.json())
```

```php PHP
use GuzzleHttp\Client;

$client = new Client();
$response = $client->request('GET', 'https://api.weav.com/v1/messages/{id}', [
    'headers' => ['Authorization' => 'Bearer '.getenv('WEAV_API_TOKEN')],
]);
echo $response->getBody();
```

</CodeGroup>

## Response

<CodeGroup>

```json 200 OK
{
    "id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d",
    "conversation_id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d",
    "sender_type": "customer",
    "sender_id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d",
    "customer_id": "9b2f6c1e-3d4a-4f5b-8c7d-1e2f3a4b5c6d",
    "content": "string",
    "sent_at": "2026-01-01T00:00:00Z",
    "is_internal": false,
    "from": [
        "string"
    ],
    "to": [
        "string"
    ],
    "cc": [
        "string"
    ],
    "bcc": [
        "string"
    ],
    "email_status": "string",
    "email_error_message": "string",
    "created_at": "2026-01-01T00:00:00Z"
}
```

</CodeGroup>

- `404` Not Found
- `401` Unauthorized

## Response fields

<ParamField body="id" type="string">
Format: `uuid`.
</ParamField>

<ParamField body="conversation_id" type="string">
Format: `uuid`.
</ParamField>

<ParamField body="sender_type" type="string">
One of: `customer`, `user`, `agent`, `system`.
</ParamField>

<ParamField body="sender_id" type="string | null">
Format: `uuid`.
</ParamField>

<ParamField body="customer_id" type="string | null">
Format: `uuid`.
</ParamField>

<ParamField body="content" type="string">

</ParamField>

<ParamField body="sent_at" type="string">
Format: `date-time`.
</ParamField>

<ParamField body="is_internal" type="boolean">

</ParamField>

<ParamField body="from" type="array&lt;string&gt; | null">

</ParamField>

<ParamField body="to" type="array&lt;string&gt; | null">

</ParamField>

<ParamField body="cc" type="array&lt;string&gt; | null">

</ParamField>

<ParamField body="bcc" type="array&lt;string&gt; | null">

</ParamField>

<ParamField body="email_status" type="string | null">

</ParamField>

<ParamField body="email_error_message" type="string | null">

</ParamField>

<ParamField body="created_at" type="string | null">
Format: `date-time`.
</ParamField>

---

This knowledge base is built and hosted on [Weav](https://weav.com).
