Send a message
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
tokenAuthorizationBearer <manova_...>An API token from the panel's «دسترسی API» page: manova_ and 64 hex characters, valid for 90 days.
Idempotency-Key*stringThe same value as clientRequestId.
application/json- body
conversationId?|Continue this conversation; omit it to start a new one.
uuidcontent*array<>The message: one text part.
1 <= items <= 1projectId?|Start the conversation in one of your projects.
uuidagentId?|Answer as one of your agents.
uuidwebSearch?booleanSearch the web first and cite the sources.
mode*stringauto, a role (fast, smart, code) or a model id.
clientRequestId*stringYour id for this send; the same value as the Idempotency-Key header.
8 <= length <= 100The reply, streamed.
response?stringtext/event-streamServer-sent events: https://docs.manova.ir/chat-api/streaming
curl -X POST 'https://manova.ir/api/v1/external/chat/messages' \ -H 'Idempotency-Key: 6f1d2c9e-6b8a-4f0e-9a51-0c2a7d1f4b33' \ -H 'Content-Type: application/json' \ -d '{ "content": [ { "type": "text", "text": "یک متن کوتاه برای معرفی فروشگاه کفش بنویس" } ], "mode": "auto", "clientRequestId": "6f1d2c9e-6b8a-4f0e-9a51-0c2a7d1f4b33"}'"string"Send products POST
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
List conversations GET
Your conversations, pinned first, then newest first. Pass `nextCursor` back as `cursor` for the next page.