Cash bids
Read and manage your elevator's standing cash bids. Requires the cashbids.read scope to read and cashbids.write to publish or update. Only elevator accounts may publish.
The cash bid model
- Name
id- Type
- string
- Description
- Opaque cash bid id, e.g. cb_7Rt4.
- Name
identifier- Type
- string
- Description
- Human identifier, e.g. CB-1042.
- Name
commodity- Type
- object
- Description
- slug and name.
- Name
price- Type
- object
- Description
- amount, currency, unit (per MT, CAD).
- Name
quantity_mt- Type
- number
- Description
- Quantity in tonnes.
- Name
delivery- Type
- object
- Description
- start and end dates.
- Name
is_active- Type
- boolean
- Description
- Whether the bid is live.
GET/v1/cash-bids
List cash bids
Your elevator's cash bids.
- Name
is_active- Type
- boolean
- Description
- Filter by active status.
- Name
commodity- Type
- string
- Description
- Filter by commodity slug.
Request
GET
/v1/cash-bidscurl "https://api.mygrainexchange.com/v1/cash-bids?is_active=true" \
-H "Authorization: Bearer {token}"
POST/v1/cash-bids
Publish a cash bid
Create a new cash bid. Price changes are tracked automatically.
- Name
commodity- Type
- string
- Description
- Commodity slug (required).
- Name
price- Type
- object
- Description
- amount, in MT (required).
- Name
quantity_mt- Type
- number
- Description
- Quantity in tonnes (required).
- Name
delivery- Type
- object
- Description
- start and end dates (required).
- Name
delivery_location_id- Type
- integer
- Description
- Delivery location.
- Name
expires_at- Type
- string
- Description
- ISO date.
Request
POST
/v1/cash-bidscurl https://api.mygrainexchange.com/v1/cash-bids \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"commodity": "canola",
"price": { "amount": 690.0, "unit": "MT" },
"quantity_mt": 500.0,
"delivery": { "start": "2026-08-01", "end": "2026-10-31" }
}'
PATCH/v1/cash-bids/:id
Update a cash bid
Update price, quantity, delivery window, expiry, or deactivate. A price change writes a new history point.
Request
PATCH
/v1/cash-bids/cb_7Rt4curl -X PATCH https://api.mygrainexchange.com/v1/cash-bids/cb_7Rt4 \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{ "price": { "amount": 685.0, "unit": "MT" }, "is_active": false }'
GET/v1/cash-bids/:id/offers
List offers on a cash bid
Sellers offer against your cash bids. The seller stays masked until both invoices are paid. You are notified of new offers via the cashbid.offer_received webhook.
Request
GET
/v1/cash-bids/cb_7Rt4/offerscurl https://api.mygrainexchange.com/v1/cash-bids/cb_7Rt4/offers \
-H "Authorization: Bearer {token}"
POST/v1/cash-bid-offers/:id/accept
Accept an offer
Accept a seller's offer. This creates a trade and invoices.
Request
POST
/v1/cash-bid-offers/cbo_9Fk2/acceptcurl -X POST https://api.mygrainexchange.com/v1/cash-bid-offers/cbo_9Fk2/accept \
-H "Authorization: Bearer {token}"
POST/v1/cash-bid-offers/:id/reject
Reject an offer
Decline a seller's offer.
Request
POST
/v1/cash-bid-offers/cbo_9Fk2/rejectcurl -X POST https://api.mygrainexchange.com/v1/cash-bid-offers/cbo_9Fk2/reject \
-H "Authorization: Bearer {token}"