Skip to main content
POST
Bid on a load
Tells the broker who owns the load that this carrier wants it, optionally at a rate. The bid shows up on the broker’s Lanesurf dashboard as an inbound bid, with the carrier’s MC/DOT and dispatch contact. The broker’s team follows up with the dispatcher by email or phone. A bid is not a booking: Lanesurf does not book the load. Confirm with the dispatcher before calling this. Bids that look like a mistake (for example an absurd rate) may be held for review instead of reaching the broker straight away.
  • Only verified carriers can bid (403 verification_required).
  • The body is optional. No body, an empty body or {} means “I want to run this, send me your rate”.
  • rate is all-in USD. Leave it out to ask for the broker’s rate.
  • truck_id must be one of this key’s active trucks.
  • One bid per carrier per load, across all of that carrier’s keys. The carrier is its DOT number, or its MC number if it has no DOT. Sending again updates that bid (latest terms win): the reply is 200 with action: updated, or action: unchanged if nothing changed. Fields you leave out keep their current value. The broker sees the new rate on the same bid.
  • Once the broker has accepted the bid, it can’t change (409 bid_decided). A declined bid can be sent again: a new rate reopens it for the broker.
  • If a bid shows incomplete in GET /v1/carrier/bids, it was recorded but never reached the broker. Send the bid again to finish it. Within 2 minutes only the key that placed it can, and its original rate, truck and note are used; after that any key of the carrier can, with the new request’s terms.
Follow the outcome with GET /v1/carrier/bids.

Authorizations

Authorization
string
header
required

One key per broker rep or per carrier signup. Keep it secret.

Path Parameters

load_id
string<uuid>
required

The load_id from a search or matches result.

Body

application/json

Optional. No body, an empty body or {} bids with no rate, truck or note, which asks for the broker's rate.

rate
number

All-in USD. Optional; leave it out to ask for the broker's rate.

Required range: x <= 1000000
truck_id
string<uuid>

Which of this key's active trucks would run it.

note
string

Up to 1,000 bytes: about 1,000 characters of plain text; accented letters and emoji count as more than one.

Response

This carrier already had a bid on this load: it was updated with the new terms (action: updated), or nothing changed (action: unchanged). Same bid_id; the broker sees the new rate on it.

bid_id
string<uuid>
required
load_id
string<uuid>
required
status
enum<string>
required

submitted: the broker has it and the load is open. accepted / declined: the broker's choice on this bid. load_closed: the load was covered some other way, closed, or booked to someone else, and the broker made no choice on this bid. incomplete: the bid was recorded but never reached the broker (a failure mid-bid); POST it again to finish it (within 2 minutes from the same key with its original terms, after that from any of the carrier's keys with the new terms).

Available options:
submitted,
accepted,
declined,
load_closed,
incomplete
created_at
string<date-time>
required
rate
number
truck_id
string<uuid>
note
string
action
enum<string>

Only in the reply to POST /v1/carrier/loads/{load_id}/bids. created: a new bid. updated: this carrier's existing bid now has the new terms. unchanged: same terms as before.

Available options:
created,
updated,
unchanged