A load tendering API built for AI agents

Tendering is the most consequential action a freight agent can take — which is exactly why it needs an API with policy answers and approval packets, not a form-filler.

Updated June 11, 2026 · 5 min read

If you are building an AI agent that covers freight, the tender is where your demo becomes a liability question. Preparing a tender requires load context, carrier eligibility, rate sanity, and company policy — and executing one binds your customer to a carrier. Headless Haulbase exposes tendering as an explicit, approval-aware action so your agent can do the work without ever being the last line of defense.

The tender flow through the API

  1. 1Read the loadThe agent pulls current load state: stops, equipment, references, workflow position, and prior carrier activity.
  2. 2Prepare the tenderA prepare_tender command validates the carrier, rate context, and load readiness — with dry-run support for testing the decision.
  3. 3Get the policy answerThe response is explicit: allowed, approval_required, blocked, or missing_context. The agent always knows its standing before anything commits.
  4. 4Deliver the approval packetWhen approval is required, the system creates a reviewable packet — load, carrier, rate, evidence, and the agent's reasoning — for a human decision.
  5. 5Record the resultApproved or rejected, executed or expired: every step writes an audit record tied to the company, load, agent, and approver.

Built for machine callers

  • Signed machine-to-machine requests identify the agent, company, load, and requested action.
  • Idempotency keys make retries safe — a network blip never becomes a double tender.
  • Duplicate and conflict detection answers at the API layer, before a human ever sees a bad packet.
  • Approval rules are company policy, configured by the customer — not behavior your agent has to hardcode.

Frequently asked questions

Can an agent execute a tender without a human?

Only if the customer's policy allows that action class to be auto-approved. By default, carrier commitments are approval-gated: the agent prepares, a human approves, the system executes and records.

What does the API return if a tender isn't allowed?

An explicit status — blocked, approval_required, or missing_context — with the reason and the recommended next step, so the agent can escalate or gather context instead of failing silently.

How do we test tendering logic safely?

Use dry-run mode: the full validation and policy path runs without executing, so you can develop and replay tender decisions against sandbox freight before touching production.

Build tendering your customers can sign off on.

Walk through the command surface, approval packets, and audit model with our team.

Book demo