---
title: "Run sync pipeline (read → write)"
method: POST
path: "/pipeline_sync"
tags: ["Stateless Sync API"]
---

# Run sync pipeline (read → write)

`POST /pipeline_sync`

Without a request body, reads from the source connector and writes to the destination (backfill mode). With an NDJSON request body, uses the provided messages as input instead of reading from the source (push mode — e.g. piped webhook events).

## 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** `1ea267682268` — 1 breaking, 52 warning, 1 info
  - the `api_version` response property const value `2026-03-25.dahlia` was removed for the status `200`
  - deleted the `header` request parameter `x-state`
  - added the new `2017-08-15` enum value to the `oneOf[#/components/schemas/ControlMessage]/control/oneOf[subschema #1]/source_config/api_version` response property for the response status `200`
  - added the new `2017-12-14` enum value to the `oneOf[#/components/schemas/ControlMessage]/control/oneOf[subschema #1]/source_config/api_version` response property for the response status `200`
  - …50 more
- **2026-04-05** `db172f650b83` — 7 breaking, 5 info
  - added the new required request property `source_input`
  - added the new required request property `type`
  - removed `subschema #1` from the request body `oneOf` list
  - added `#/components/schemas/SourceStateMessage` to the response body `oneOf` list for the response status `200`
  - …8 more
- **2026-04-05** `42d2d829b545` — 7 breaking, 2 warning, 13 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/EofMessage]/eof/has_more` from the response with the `200` status
  - …18 more

[Change history](https://skmtc.dev/stripe/apis/stripe-sync-engine/changes/pipeline_sync/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/8aee5636331b/schema)
