Skip to content
roadmark

Freight API

Build on the API Roadmark runs on.

Our own screens, the driver app and every agent call the same public API. There is no private one. Anything Roadmark can do to a load, a quote or an invoice, your code can do too, under the same permissions.

GET /v1/loads/48213
Roadmark-Company: ashgrove-freight

200 OK
{
  "id": "48213",
  "object": "load",
  "status": "delivered",
  "customer": { "id": "prairie-foods", "name": "Prairie Foods" },
  "equipment": { "type": "dry_van", "length_ft": 53, "trailer": "TRL 5317" },
  "stops": [
    { "type": "pickup", "location": "Mississauga, ON", "appointment_at": "2026-09-29T06:00:00-04:00" },
    { "type": "delivery", "location": "Joliet, IL", "appointment_at": "2026-09-29T14:45:00-05:00" }
  ],
  "rate": { "amount": "4215.00", "currency": "USD" },
  "invoice": { "id": "INV-10442", "total": "4315.00" },
  "version": 8,
  "updated_at": "2026-09-29T18:21:07-05:00"
}

Every record the product uses is in the API.

One resource model, the same one our screens read from. Nothing in the app has a shape your code can't also see.
  • loadsA shipment from pickup to delivery, with its stops and status.
  • stopsA pickup, delivery or intermediate stop and its appointment window.
  • quotesA priced request, drafted or sent, with the reasons behind the number.
  • ordersA customer's booking before it becomes a load.
  • customersWho you bill, their contracts and their contacts.
  • carriersWho you hire, their insurance, lanes and rate history.
  • driversHours of service, documents and pay, for your own fleet.
  • unitsTrucks and trailers, their maintenance and current load.
  • invoicesWhat you bill a customer, and when it was paid.
  • settlementsWhat a driver or carrier is owed, and when it was paid.
  • documentsPODs, rate confirmations and anything else attached to a load.
  • eventsEvery change to every record, and who or what made it.

Events and webhooks

Webhooks tell your systems the moment a load changes.

Subscribe an endpoint to the events you care about. Each one carries the record's id and its version, so a late retry never overwrites something newer, and you can always fetch the full record under your key's own permissions.

  • quote.draftedAn agent or a person creates a quote for an RFQ or an inbox request.
  • quote.sentA quote goes out to a customer.
  • load.status_changedA load moves between booked, dispatched, in transit and delivered.
  • load.stop.arrivedA check call, scan or ELD event marks arrival at a stop.
  • tender.acceptedA carrier accepts a tender in the carrier portal or by EDI.
  • invoice.issuedAn invoice is created from a delivered load.
  • settlement.paidA driver or carrier settlement is paid out.
  • document.uploadedA POD, rate confirmation or other document lands on a load.

The same MCP server Claude, ChatGPT and Gemini use.

It's a small set of tools, in plain words, not a copy of the whole API. Every call runs as the person signed in: it sees their companies and customers, and nothing else.
  • search_loadsFind loads by customer, lane, status or date, the way a dispatcher would ask.
  • get_loadRead one load in full: stops, status, rate and documents.
  • draft_quotePrice a lane from contracts and rate history, and leave the result as a draft.
  • update_etaRecord a new ETA from a check call or a delay, drafted for approval like any other update.
  • list_invoicesFind open, paid or overdue invoices for a customer.
  • find_customerLook up a customer's contract, contacts and recent loads.

Build your own agent

Agents you build draft the work, and a person approves it in the same record.

Whatever you build against the API writes to the same drafts our own agents use. Nothing it prepares reaches a customer, carrier or driver until someone approves it in Roadmark, and every action is attributed to your integration by name.

An integration's draft and a person's approval in load 48213's history
Load 48213 · history
  1. 09:14integration:ashgrove-sms drafted a check call from R. Diaz's text: cleared at Port Huron 09:05
  2. 09:16K. Wong approved it; Prairie Foods sees it on the tracking page

A sandbox with a real group already in it.

Test keys point at Ashgrove Transportation Group, a test workspace with companies, loads, customers and carriers already loaded. Nothing you do there reaches a live company.
What the sandbox holds
Sandbox · Ashgrove Transportation GroupTest keys only
CompaniesAshgrove Freight, Ashgrove Logistics, Keel Transport
Sample load48213 · Mississauga ON → Joliet IL
Sample customerPrairie Foods

Use the REST and JSON API with typed clients for Node.js, Python and Ruby.

Questions

What developers ask.

Does Roadmark have a public API?

Yes, and it's the same API Roadmark's own screens, driver app and agents call; there is no private one. Anything Roadmark can do to a load, a quote or an invoice, your code can do too, under the same permissions.

What data does the API cover?

Every record the product uses: loads, stops, quotes, orders, customers, carriers, drivers, units, invoices, settlements, documents and events. It's the same resource model the screens read from.

Does Roadmark support webhooks?

Yes. Subscribe an endpoint to events such as quote.sent, load.status_changed, tender.accepted or invoice.issued. Each event carries the record's id and version, so a late retry never overwrites something newer.

Is there an MCP server?

Yes, the same one Claude, ChatGPT and Gemini use. It's a small set of plain-word tools, such as search_loads, draft_quote and list_invoices, and every call runs as the person signed in, seeing only their companies and customers.

Is there a sandbox for testing?

Yes, and access is free. Test keys point at Ashgrove Transportation Group, a test workspace with companies, loads, customers and carriers already loaded, and nothing you do there reaches a live company.

Are there SDKs?

Yes. Typed clients are available for Node.js, Python and Ruby. You can also use the REST and JSON API directly.

Get a sandbox.

We'll set you up with test keys against the Ashgrove test workspace so you can start building the same day.

  • Test keys, no live company involved
  • The full API, webhooks and MCP server
  • A developer, not a salesperson, on the call

Sandbox access is free.

We use this to reply to your request. Privacy policy.