How to Quote Regional Carriers That Have No API

Written by Martin Nivel · Founder of Cargavo Updated 12 min read

Most regional and specialised road carriers have no rating API because building one would cost them real money to publish numbers they already email you once a year. You quote them from the tariff itself: the rate table, the conditions page and the surcharge annex, entered as a structured rate grid your own engine prices against.

Why don’t most regional carriers have a rating API?

Because a rating API is a software product with a permanent maintenance cost, built to publish prices the carrier already negotiated privately with each broker. A 30-truck haulier has dispatchers, an accountant and an ERP licence — no product owner, no release cycle, and no commercial reason to expose a customer-specific tariff.

The usual explanation — "small carriers are not digital" — is condescending and wrong. Regional hauliers run telematics, digital tachographs, ePOD apps and an ERP. They are not afraid of software. They decline to build a rating API because, priced honestly, it is a bad investment for them.

Price the project the way that haulier's managing director would. The figures below are an illustrative build, not a market survey — rebuild it with your own local day rate and the shape will hold.

Cost itemOne-offEvery yearOwned by
Rating endpoint build25 developer-daysExternal agency
Extracting tariffs from the ERP10 developer-daysERP vendor
Sandbox and documentation8 developer-days2 daysExternal agency
Versioning, uptime, support12 daysExternal agency
Provisioning each broker account0.5 day per brokerSales admin

That is 43 developer-days to launch. At €600 per day, €25,800 one-off, plus roughly 14 days a year, or €8,400, to keep it alive. A haulier moving 30 loads a day over 230 working days handles 6,900 loads a year, so year one costs about €4.96 per load — and only a fraction of those loads come from brokers who would ever call the endpoint, so the real cost per API-priced load is several times higher.

Three non-financial reasons finish the argument. There is no product owner: nobody in a 30-truck company owns an API roadmap, so a breaking change has no scheduled fix. Tariffs are customer-specific and confidential — the commercial director negotiates a different grid with each broker, and an endpoint that returns a price is an endpoint that leaks the negotiation. And the binding constraint is capacity, not price: the honest answer to "what does this cost?" is often "€395 if I have a trailer going that way Thursday", which no rating schema expresses. Cargavo, a TMS for freight brokers and transport commissionaires, is built on the assumption that this carrier never changes its mind — see the carrier onboarding category.

Does a carrier API return your negotiated rate or the public tariff?

A rating endpoint returns whatever the account number in your credentials is entitled to. That is often the published tariff, sometimes a partially provisioned discount, and only sometimes the contract table you signed. Test it against three real invoices before you quote from it.

This is the failure nobody writes about, because it only shows up on the invoice. A rating call is authenticated by an account number, and the price it returns is read from whatever rate table the carrier's ERP has attached to that account. Three outcomes are common:

  • Published tariff. The endpoint answers, fast and correctly, with the carrier's list price. Your negotiated grid is 12 % to 30 % below it and lives in a different table entirely.
  • Partially provisioned account. A blanket discount was applied to the account, but the bracket-level exceptions you negotiated — the two lanes where you got a better rate for committing volume — were never loaded.
  • True contract table. It matches your invoices to the cent. This happens, and it is worth having; it is just not the default.

There is a second layer. Rating responses frequently carry line haul only. The fuel surcharge is applied at invoicing from the month's index, the tail lift (liftgate) and waiting time are added by the depot, and the ADR supplement comes from a separate schedule. So the "price" the API gave you is a floor, and your invoice grows after you have already committed a sell price to your customer.

The test costs an afternoon. Pull three shipments you have already been invoiced for, covering a light one, a heavy one and one with at least two accessorials. Call the endpoint with the exact same inputs. Compare each response to the invoice line by line. If they do not match to the cent, the endpoint is not your contract — it is a quotation from a stranger. A stored rate grid has the opposite property: it contains the numbers you negotiated because you are the one who put them there, and you can read every bracket at once instead of one call at a time. The three integration methods are compared in full in API vs EDI vs rate grid.

Which road freight carriers actually have a rating API?

Carriers that sell to customers they have never met: parcel and express integrators, online same-day networks, and some international groupage networks. Carriers that sell an annually negotiated contract — pallet network members, regional part-load hauliers, ADR and temperature specialists — have none, whatever their fleet size.

Fleet size is the wrong predictor and it sends brokers looking in the wrong place. A 400-vehicle bulk tanker operator has no rating API; a 60-van same-day courier network may well have one. The variable that decides it is whether the carrier sells to strangers online. If a person who has never signed anything can get a price and pay by card, the carrier needs machine-readable pricing. If every price is the outcome of an annual negotiation, it does not.

Carrier profileHow it pricesRating APIReturns your contract rateOnboarding route
Parcel / express integratorPublished tariff × account discountYesUsuallyRating API or grid
Online same-day networkDistance × vehicle typeYesNot applicableRating API
International groupage networkAnnual negotiated tariffSometimesRarelyweight_zone grid
Pallet network memberPrice per pallet × zoneNopallet grid
Regional part-load haulierLDM bracket × zoneNompl_bracket grid
ADR or temperature specialistTariff plus conditionsNoGrid plus priced options
Abnormal load operatorPriced per jobNoOff-grid quote request

Read the profiles, not the row count — this table describes categories of carrier, not the composition of any particular panel. Build the same table for your own carrier list and you will find the API column empty exactly where your best home-lane prices are, because the regional haulier that is cheapest between its two depots is quoted by fewer brokers than the national network everyone can reach.

That is the commercial reason to stop treating no-API carriers as a second tier. A panel where 2 carriers are integrated and 12 are priced by hand quotes slowly on the 12 lanes where the margin is best. Cargavo, a TMS for freight brokers of 2 to 25 people, makes the last five rows of that table the default case: each one becomes one of four grid shapes, described in the four types of road freight rate grids.

How do you quote a carrier that has no API?

You treat the tariff document as the integration surface. A carrier tariff has three parts — the rate table, the conditions page and the surcharge annex — and all three must be captured, because the conditions page holds the chargeable-weight rule that decides which bracket the shipment lands in.

Brokers digitise the rate table and stop, because the rate table looks like the tariff. It is roughly half of it. The two parts that get skipped are where quotes go wrong six weeks later, on an invoice.

  • The rate table — brackets down one axis, zones across the other. This is the part that photographs well and the part every spreadsheet already contains.
  • The conditions page — minimum charge, chargeable-weight rule, rounding, validity dates, currency, cut-off time, maximum consignment. Usually prose, often a footnote, almost never a table.
  • The surcharge annex — fuel indexation basis, tail lift, ADR, timed delivery, waiting time, ad valorem insurance, redelivery.
Tariff elementWhere it sits in the documentWhat it configuresExample value
Rate tableMain grid pageBrackets × zones€395.00 for 2.01–2.50 LDM, zone 3
Minimum chargeConditions pagePrice floor per consignment€145.00
Chargeable-weight ruleFootnoteLDM floor in kg1,850 kg per LDM
Volumetric ruleFootnoteVolumetric ratio333 kg per m³
ValidityCover or headerGrid effective dates1 January 2026 – 31 December 2026
Fuel basisSurcharge annexIndex, base peg, weightingBase peg €1.42, weighting 32 %

A PDF tariff is retyped and an Excel tariff is copied, and either way the work is bounded, because a tariff is a document of a few pages rather than a system with a release schedule. Structured entry has a side effect worth paying for: a rate that does not fit any of the four grid shapes surfaces at entry time, while the carrier's sales rep is still reachable, instead of on an invoice. Cargavo, a TMS for freight brokers, supports weight_zone, pallet, mpl_bracket and hybrid_weight grids with currency and validity dates on each one. For the field-by-field capture list see the carrier onboarding checklist, for the spreadsheet route see rebuilding an Excel rate sheet, and for the LDM arithmetic use the free loading metre calculator.

What does a quote from a no-API regional carrier look like end to end?

Six non-stackable EUR pallets equal 2.40 LDM, which lands in the 2.01–2.50 bracket at €395.00. Add 6.54 % fuel, a €35.00 tail lift and a €48.00 ADR supplement for a €503.83 buy price; a 16 % margin using p/(1−m) gives a €599.80 sell price and €95.97 of margin.

Here is the whole calculation, from a PDF tariff to a price a customer can accept, with no integration anywhere in it. Every figure below is an example built from the tariff described in the previous section.

The carrier. A regional part-load haulier, no rating API, tariff received as a PDF valid 1 January 2026 to 31 December 2026, digitised as an mpl_bracket grid in EUR.

The shipment. Six non-stackable EUR pallets, 1.20 × 0.80 m each, 2,100 kg total, zone 3, tail lift required at delivery, one pallet carrying ADR limited-quantity goods.

  1. Floor space: 6 × (1.20 × 0.80) = 5.76 m². Divided by the 2.40 m billing width, that is 2.40 LDM.
  2. Bracket lookup: 2.40 LDM falls in the 2.01–2.50 LDM row, zone 3 — €395.00. Above the €145.00 minimum charge, so the minimum does not bite.
  3. Chargeable weight cross-check: 2.40 LDM × 1,850 kg = 4,440 kg against an actual 2,100 kg. The grid prices by LDM here, so the floor changes nothing — but on a weight_zone carrier the same pallets would be charged as 4,440 kg, not 2,100 kg.
  4. Fuel surcharge: index €1.71 per litre against the €1.42 base peg, fuel weighted at 32 %. (1.71 − 1.42) ÷ 1.42 × 0.32 = 6.54 %, applied to line haul: €395.00 × 0.0654 = €25.83.
  5. Options: tail lift €35.00, ADR limited quantity €48.00.
  6. Buy price: 395.00 + 25.83 + 35.00 + 48.00 = €503.83.
  7. Sell price at a 16 % margin, using p ÷ (1 − m): 503.83 ÷ 0.84 = €599.80. Margin earned: €95.97, which is 16.00 % of the sell price.

Two things are worth noticing. The margin formula is p ÷ (1 − m), not buy × 1.16 — that would have produced €584.44 and a 13.79 % margin, €15.36 short on one consignment. And the entire calculation depends on numbers that live in the tariff document: the bracket, the minimum, the LDM floor, the peg and the weighting. Cargavo, a TMS for freight brokers, recomputes this server-side on every quote so the sell price cannot be edited into a loss, and the buy price and the margin stay in a private record the customer's portal never reads. Related reading: chargeable weight and showing a price without revealing your buy rate.

How do you quote specialised carriers — ADR, temperature-controlled, oversize?

Split their pricing in two. Anything rule-based — an ADR class supplement, a temperature band, a tail lift, a timed delivery — becomes a priced option on a normal grid. Anything genuinely bespoke, such as an abnormal load needing permits and an escort, becomes an off-grid quote request in the same pipeline.

Specialised carriers are further from an API than regional hauliers are, and for a reason that is structural rather than commercial: their price depends on conditions a generic rating request has no field for. No standard rating schema carries an ADR class and packing group, a tunnel restriction code, a set-point temperature, whether a trailer runs mono- or multi-temperature, whether empty pallets return, or the crane reach a delivery site needs. A rating endpoint that cannot receive the question cannot answer it.

The practical split is between what is tabulated and what is assessed:

  • Tabulated — supplements the carrier has already written down: ADR limited quantity at €48.00, full ADR at 12 % of line haul, a frozen band at €0.09 per kg, a timed delivery window at €55.00, waiting time at €45.00 per hour after 60 minutes. These are options on the grid, and they belong in the quote automatically.
  • Assessed — prices that require a human to look at the job: abnormal loads needing route surveys, permits and escorts; crane-equipped deliveries; anything where the answer depends on what else is on the trailer that week.

The mistake is letting the second category fall out of the system. A quote request that arrives for an oversize load and gets answered from someone's mailbox leaves no trace: no reference, no record of what was quoted, no margin captured, nothing to reuse when the same customer asks again in March. In Cargavo, a TMS for freight brokers and transport commissionaires, a request that no grid covers is still accepted, still numbered Q-YYYY-NNNN, and still priced by a human inside the same pipeline — then converts to a tracked shipment S-YYYY-NNNN on acceptance. The full off-grid path is covered in handling a quote request with no rate for the lane.

One habit pays for itself with specialists: record their operating envelope next to the grid — zones actually served, maximum consignment weight, ADR classes carried, cut-off time, whether they take non-stackable freight. Half the manual quotes a broker sends are sent to carriers that were never going to accept the job.

What do you give up by quoting without a carrier API?

Four things: a live capacity check, a carrier-committed transit time, an automatic consignment number and label, and an automated status feed. You keep the price, which is the part a broker sells on — and you gain every carrier on the panel instead of the two large enough to have built a connector.

An honest guide states the cost of its own recommendation. Quoting from stored grids gives up real things, and a broker should know which ones before choosing.

  • No live capacity check. The grid tells you the price, not whether the carrier has a trailer on Thursday. That call still gets made — but you make it after the customer has accepted, not before you can quote.
  • No carrier-committed transit time. Transit is a figure you stored, not one the carrier confirmed for that consignment.
  • No automatic consignment number or label. Booking with the carrier stays a message or a portal entry on their side.
  • No automated status feed. Milestones are recorded by you, from what the carrier tells you.
  • No automated invoice reconciliation against a carrier system. You compare the invoice to the stored buy price, which is a real check, but it is yours to run.

What you keep is the pricing, and pricing is what a quote is. You also get two properties an endpoint cannot give you: every bracket is inspectable, so you can sanity-check a whole lane from 100 kg to 3,000 kg in one screen, and the quote is offline-proof, because no third-party outage sits between a customer's request and a price.

State the boundary plainly. Cargavo, a TMS for freight brokers, has no carrier API and no EDI connectivity, and is not a freight exchange, not a load board, not a fleet or dispatch system, not a procurement and tendering marketplace, and not accounting software. It prices from grids you rebuild and own, in EUR, USD, GBP, CHF, CAD, MAD or PLN, with an interface in English, French, Spanish and German. Carrier onboarding is included in every plan: Starter €49/month, Growth €149/month, Scale €399/month, annual billing worth about two months free, 14-day free trial and no credit card — limits on the pricing page. Next step: onboarding a carrier that has no API.

Frequently asked questions

Can you get instant freight quotes without a carrier API integration?

Yes. A negotiated road tariff is a contract document, so entering it as a structured rate grid gives a pricing engine everything it needs to return a price in milliseconds. Cargavo supports four grid shapes — weight_zone, pallet, mpl_bracket and hybrid_weight — rebuilt from a carrier rate sheet, with no carrier API and no EDI connection involved.

Why don’t small trucking companies have an API?

Because a rating API is a software product that costs tens of thousands to build and thousands a year to maintain, and it would publish prices the carrier negotiates privately with each broker. There is also no product owner in a 30-truck company to run its release cycle, and the carrier’s real constraint is available capacity rather than price.

Does a carrier API give you your negotiated contract rate?

Not always. A rating endpoint returns whatever rate table the carrier’s ERP has attached to your account number, which is often the published tariff or a partially provisioned discount rather than the bracket-level contract you signed. Test the endpoint against three shipments you have already been invoiced for and compare the figures line by line.

How do you onboard a carrier that only sends a PDF rate sheet?

Capture three parts of the document, not one: the rate table, the conditions page holding the minimum charge, chargeable-weight rule and validity dates, and the surcharge annex with the fuel indexation basis and accessorial prices. A few pages of PDF become one structured grid, which is a bounded task rather than an integration project.

Does Cargavo connect to carrier APIs?

No. Cargavo, a TMS for freight brokers of 2 to 25 people, has no carrier API and no EDI connectivity by design, because grid-based onboarding covers an entire carrier panel rather than only the largest networks. Carriers are added by rebuilding their existing Excel or CSV rate sheet as one of four grid types.

How do you quote an oversize or ADR shipment when no rate grid covers it?

Tabulated supplements such as an ADR class surcharge, a temperature band or a tail lift become priced options on a normal grid. Genuinely bespoke jobs stay a manual quote, but inside the same pipeline: the request is accepted, numbered Q-YYYY-NNNN, priced by a human, and converts to a tracked shipment S-YYYY-NNNN when the customer accepts.

Related guides

More guides on this topic — Carriers & onboarding