Send products
Up to 100 products per call, plus up to 500 ids in deleted. With syncId they are part of a full sync; without it they are an incremental update. Each product replaces the stored one, so send every field you have. id, name and url (on the shop's domain) are required for a product to be stored; "visible": false removes it.
Field guide: https://docs.manova.ir/store/product-sync#product-fields
storeAuthorizationBearer <mnv_...>The store connection key from the assistant's «فروشگاه» section: mnv_<store>_<secret>.
application/json- body
syncId?|^[A-Za-z0-9_-]{8,40}$products*array<>items <= 100deleted?array<>items <= 500application/json- response
ok*booleansaved*integerremoved*integerProducts removed through deleted.
curl -X POST 'https://manova.ir/api/v1/external/store/products' \ -H 'Content-Type: application/json' \ -d '{ "products": [ { "id": 1042, "name": "کفش رانینگ مردانه مدل آریا", "url": "https://shop.example.com/product/aria-running" } ]}'{ "ok": true, "saved": 0, "removed": 0}Start or finish a full sync POST
`start` begins a full sync under your `syncId`; send the products with the same `syncId`, then `finish`, which removes every product the sync did not send. A newer `start` replaces the running sync; calls with the older `syncId` then get `409`.
Send a message POST
Sends a message and streams the reply as server-sent events (`text/event-stream`): `message.started`, `message.delta`..., then one of `message.completed` / `message.aborted` / `message.failed`, and `usage.updated`. Errors before the stream starts are JSON. `clientRequestId` must equal the `Idempotency-Key` header. Retrying an id whose reply has ended replays its final events without charging again. Events: https://docs.manova.ir/chat-api/streaming