---
title: "Client.publish( topic, payload, [options] ) | Grafana k6 documentation"
description: "Publish messages to MQTT topics"
---

> For a curated documentation index, see [llms.txt](/llms.txt). For the complete documentation index, see [llms-full.txt](/llms-full.txt).

# Client.publish()

Publish a message synchronously.

## Signature

JavaScript ![Copy code to clipboard](/media/images/icons/icon-copy-small-2.svg) Copy

```javascript
client.publish(topic, payload, options)
```

## Parameters

Expand table

| Parameter      | Type                  | Description                                                          |
|----------------|-----------------------|----------------------------------------------------------------------|
| topic          | string                | Topic to publish to                                                  |
| payload        | string \| ArrayBuffer | Message payload (string or binary data)                              |
| options        | object                | Optional publish configuration                                       |
| options.qos    | number                | Quality of Service level (0, 1, or 2). Default: 0                    |
| options.retain | boolean               | Whether the message should be retained by the broker. Default: false |
| options.tags   | object                | Custom tags for metrics (key-value pairs)                            |
