# Typing

## Start typing indicator

`client.chats.typing.start(stringchatID, RequestOptionsoptions?): void`

**post** `/v3/chats/{chatId}/typing`

Send a typing indicator to show that someone is typing in the chat.

## Behavior & Limitations

Typing indicators are best-effort signals with the following limitations:

- **Active conversations only:** The recipient must have sent or received a message
  in this chat within the **last 5 minutes**. If the chat is inactive, the request is
  still accepted (`204`) but the indicator will not reach the recipient's device.

- **No delivery guarantee:** Even for active chats, a `204` response only indicates
  the request was accepted for processing.

- **Group chats not supported:** Attempting to start a typing indicator in a group chat
  will return a `403` error.

### Parameters

- `chatID: string`

### Example

```typescript
import LinqAPIV3 from '@linqapp/sdk';

const client = new LinqAPIV3({
  apiKey: process.env['LINQ_API_V3_API_KEY'], // This is the default and can be omitted
});

await client.chats.typing.start('550e8400-e29b-41d4-a716-446655440000');
```

#### Response

```json
{
  "error": {
    "status": 400,
    "code": 1002,
    "message": "Phone number must be in E.164 format",
    "doc_url": "https://docs.linqapp.com/error/codes/1xxx/1002/"
  },
  "success": false
}
```

## Stop typing indicator

`client.chats.typing.stop(stringchatID, RequestOptionsoptions?): void`

**delete** `/v3/chats/{chatId}/typing`

Stop the typing indicator for the chat.

Typing indicators are automatically stopped when a message is sent, so calling
this endpoint after sending a message is unnecessary.

See the `POST` endpoint above for behavior details and limitations.

**Note:** Group chats are not supported and will return a `403` error.

### Parameters

- `chatID: string`

### Example

```typescript
import LinqAPIV3 from '@linqapp/sdk';

const client = new LinqAPIV3({
  apiKey: process.env['LINQ_API_V3_API_KEY'], // This is the default and can be omitted
});

await client.chats.typing.stop('550e8400-e29b-41d4-a716-446655440000');
```

#### Response

```json
{
  "error": {
    "status": 400,
    "code": 1002,
    "message": "Phone number must be in E.164 format",
    "doc_url": "https://docs.linqapp.com/error/codes/1xxx/1002/"
  },
  "success": false
}
```
