Compose through read-only MCP tools
const url = 'https://example.com/entry-drafts/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/messages';const options = { method: 'POST', headers: { cookie: '__Host-bottle.session_token=<__Host-bottle.session_token>', 'Content-Type': 'application/json' }, body: '{"version":1,"message":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/entry-drafts/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/messages \ --header 'Content-Type: application/json' \ --cookie __Host-bottle.session_token=<__Host-bottle.session_token> \ --data '{ "version": 1, "message": "example" }'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”object
Example generated
{ "version": 1, "message": "example"}Responses
Section titled “Responses”Updated conversation or live progress and answer events
object
object
object
A language: en-GB English, ar Arabic, ur Urdu, pa Punjabi (Gurmukhi), hi Hindi, bn Bengali, gu Gujarati, zh-Hans Chinese (Simplified), pl Polish, ro Romanian, es Spanish, fr French, de German.
Deposit: paid once with the cylinder and refunded on return. rent: charged while they keep it, no deposit.
UUID v7
object
object
UUID v7
UUID v7
UUID v7
On_account: billed later, nothing to collect. link: a payment link raised in the accounting system. cash: the driver takes it at the door.
Bottle: Bottle invoices and takes payment as usual. elsewhere: already invoiced or paid outside Bottle. Bottle sends no invoice or payment link, drivers collect nothing, and the payment method is kept as on_account.
Delivery: goes on a round. collection: the customer picks it up from the yard; never planned onto a van, and comes off stock when marked collected.
Consumer: use consumer list prices. trade: use trade prices where set. Agreed rates, customer price lists and price rules still take priority.
object
UUID v7
object
UUID v7
object
object
object
object
Example
{ "status": "draft", "proposal": { "customer": { "tradingName": "Camden Lock Grill", "paymentTerms": "prepaid", "preferredLocale": "en-GB", "kind": "commercial", "hireBillingPeriod": "weekly", "cylinderCharge": "deposit", "rateSetId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "invoiceSchedule": { "mode": "business" }, "legalName": "Camden Lock Grill Ltd", "contactName": "Priya Shah", "email": "orders@camdenlockgrill.co.uk", "phone": "07700 900123", "accountNumber": "BTL00313", "address": { "leaveInstruction": "none" } }, "order": { "customerId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "deliveryAddressId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "deliveryOptionId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f", "paymentMethod": "on_account", "billingOwner": "bottle", "fulfilment": "delivery", "pricingAudience": "consumer", "surchargeChoice": "usual", "lines": [ { "productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f" } ], "collect": [ { "productId": "019205d1-6e7a-7c3b-9f6e-3a2b1c0d9e8f" } ] } }, "messages": [ { "role": "user" } ]}Draft request refused
object
Example
{ "error": "not_found", "message": "Customer not found"}Draft request refused
object
Example
{ "error": "not_found", "message": "Customer not found"}Draft request refused
object
Example
{ "error": "not_found", "message": "Customer not found"}Draft request refused
object
Example
{ "error": "not_found", "message": "Customer not found"}Draft request refused
object
Example
{ "error": "not_found", "message": "Customer not found"}Draft request refused
object
Example
{ "error": "not_found", "message": "Customer not found"}Draft request refused
object
Example
{ "error": "not_found", "message": "Customer not found"}