---
title: "Read records from source"
method: POST
path: "/pipeline_read"
tags: ["Stateless Sync API"]
---

# Read records from source

`POST /pipeline_read`

Streams NDJSON messages (records, state, catalog). Optional NDJSON body provides live events as input.

## Query parameters

- `state_limit` integer — Stop streaming after N state messages.
- `time_limit` number — Stop streaming after N seconds.

## Response `200`

NDJSON stream of sync messages

## Other responses

- `400` — Invalid params

## Changes

- **2026-04-05** `42d2d829b545` — 8 breaking, 7 warning, 15 info
  - added the new required `header` request parameter `x-pipeline`
  - removed the media type `application/json` from the request body
  - added `#/components/schemas/StateMessage, #/components/schemas/TraceMessage` to the response body `oneOf` list for the response status `200`
  - removed the required property `oneOf[#/components/schemas/CatalogMessage]/catalog/streams/items/newer_than_field` from the response with the `200` status
  - …26 more

[Change history](https://skmtc.dev/stripe/apis/stripe-sync-engine/changes/pipeline_read/post.md)

---

[API](https://skmtc.dev/stripe/apis/stripe-sync-engine.md) · [All operations](https://skmtc.dev/stripe/apis/stripe-sync-engine/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stripe/stripe-sync-engine/revisions/42d2d829b545/schema)
