# Publish a message to a topic

`POST /v1.0/publish/{pubsubName}/{topic}`

This endpoint lets you publish data to multiple consumers who are listening on a topic. Catalyst guarantees At-Least-Once semantics for this endpoint.

## Request

### Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `pubsubName` | string | Yes | Pattern: `^[a-zA-Z0-9_-]+$`. |
| `topic` | string | Yes | Pattern: `^[a-zA-Z0-9_-]+$`. |

### Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `metadata` | object | No | Query parameters for metadata as described below. |

### Request body

Required.

`application/json`

Type: `object`.

Example:

```json
{
  "message": "Hello, World!"
}
```

## Responses

### 204 — Message delivered.

### 403 — Message forbidden by access controls.

### 404 — No pubsub name or topic given.

### 500 — Delivery failed.
