---
title: "Stream Receive"
method: POST
path: "/api/v1.msgs.stream.receive"
tags: ["Msgs"]
---

# Stream Receive

`POST /api/v1.msgs.stream.receive`

Receives messages from a topic using a consumer group.

Each consumer in the group reads from all partitions. Messages are locked by leases for the
specified duration to prevent duplicate delivery within the same consumer group.

## Request body

- MsgStreamReceiveIn
  - `namespace` string, nullable
  - `topic` string, required
  - `consumer_group` string, required
  - `batch_size` integer
  - `lease_duration_ms` integer
  - `default_starting_position` 'earliest' | 'latest'
  - `batch_wait_ms` integer, nullable — Maximum time (in milliseconds) to wait for messages before returning.

## Response `200`

- MsgStreamReceiveOut
  - `msgs` StreamMsgOut[], required
    - `offset` integer, required
    - `topic` string, required
    - `value` integer[], required
    - `headers` object, required
    - `timestamp` integer, required
    - `scheduled_at` integer, nullable

## Other responses

- `400`
- `401`
- `403`
- `422`

---

[API](https://skmtc.net/svix/apis/diom-api.md) · [All operations](https://skmtc.net/svix/apis/diom-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/svix/diom-api/versions/e98d7f3a3e10/schema)
