Skip to Content
FR8 Factory Docs

Overview

Push us an event when a load is created, instead of us polling for it.

This section is for systems that send events to FR8 Factory. It is the opposite direction from the Customer Data API, which is for reading your load data out of us.

Today there is one integration here: LDI pushes an event when a load is created.

Why this exists

We currently discover new LDI loads by polling /getLoadsByList every fifteen minutes. That endpoint's pagination returns overlapping samples of the working set rather than a stable ordering, so there is no way to ask it "what is new since X".

So we walk pages until several in a row contain nothing we have not already seen, then infer we have probably covered everything. It is a probabilistic answer to a question that has an exact one — and loads have been missed because of it.

One event at creation replaces the guess.

The shape of it

POST /api/webhooks/ldi/loads
X-LDI-Signature: t=<unix-seconds>,v1=<hex-hmac>
Content-Type: application/json

{ "eventId": "…", "eventType": "load.created", … }

We verify the signature, store the event, and return 202 — all before doing anything with it. Processing happens afterwards, on our side, at our pace.

That ordering is deliberate and it shapes everything else in this section: 202 means we have it and will not lose it, not that the load is in our system yet. Your delivery is decoupled from our processing, so a bug on our side is ours to replay and never a reason for you to redeliver.

What we do not do

We do not poll you for events, and we do not ask you to batch them. One event, one request, signed.

On this page

Help

How do I get API access?

API keys are issued per customer by the FR8 Factory team. Ask your account contact — or send us a request through the Help desk tab with your company name and use case.

How do I authenticate requests?

Send your API key in the Authorization header on every request. Keys are secret — never ship them in browser code or mobile apps.

Open the guide — How do I authenticate requests?

How do I keep my copy of the data in sync?

Use delta polling: request only records changed since your last sync cursor instead of re-downloading everything. The guide covers cursors, ordering, and replay safety.

Open the guide — How do I keep my copy of the data in sync?

What are the rate limits?

Limits are per API key and documented on the rate-limits page, along with the response headers that tell you where you stand and how to back off.

Open the guide — What are the rate limits?

What does each load field mean?

The load field dictionary defines every field the API returns — types, nullability, and freight-domain meaning (pick vs drop dates, AR, equipment types).

Open the guide — What does each load field mean?

Found a bug or missing data?

Send it through the Help desk tab with the request you made and what you expected back. You'll get a reference code, and we'll email you when it's resolved.