This is the developer reference for the Load Guardrails HTTP API: the real endpoints a broker, 3PL, or platform can call today, and an honest account of what is not available over HTTP yet. It is generated from our endpoint reference, so it stays in sync with what the platform actually does.
This page is generated from the platform's endpoint reference (lg-backend 0.35.0) by scripts/gen-developers-page.py. The endpoint list below is parsed out of that document — method, path, and purpose come straight from it. Do not hand-edit this page; it is regenerated from the reference so it can never drift from the running API.
All calls are JSON under a single base path. Same-origin on the deployed host.
https://loadguardrails.com/api/v1 — every path below is relative to it.POST /auth/entity-login with {email, password} returns a JWT. The token identifies your entity (an account and its role: carrier, shipper, broker) and expires in 12 hours; call POST /auth/refresh before expiry.Authorization: Bearer <token> on every /me/* call. Public reads (the directory, the open board, health) need no token./me/* read and write is scoped to your own entity; role gates which actions you may call (only brokers provision entities, create agreements, and open introductions).Each row is a real endpoint on the running API, grouped by what it does. Method, path, and purpose are parsed from the endpoint reference.
| Method | Path | Purpose |
|---|---|---|
| POST | /auth/entity-login | Login — returns {token, user_id, account_id, address, role}. |
| Method | Path | Purpose |
|---|---|---|
| GET | /entities/lookup | (auth, any entity) -> {account_id, company, role_type, field_address, usdot_number, mc_number, status, sample:false}; 404 for unknown / sample-only / soft-deleted. |
| POST | /entities | broker only (else 403; no token 401). Idempotent create-or-get of a user-less provisioned counterparty account. |
| Method | Path | Purpose |
|---|---|---|
| GET | /directory | (public, IP rate-limited 120/10min) -> {role, count, limit, offset, entities:[...]}. |
| Method | Path | Purpose |
|---|---|---|
| POST | /me/connections | 201 pending. 400 self, 404 not a real account, 409 already connected. |
| GET | /me/connections | returns {connections:[{id, status, direction:"incoming"|"outgoing", other:{company, role_type, field_address}}], incoming_pending}. |
| POST | /me/connections/:id/respond | only the TARGET of a pending request may respond (else 404/403). |
| Method | Path | Purpose |
|---|---|---|
| POST | /me/postings | 201. Shipper OR broker (carrier -> 403). |
| GET | /me/postings | Owner-only (poster = shipper or broker) |
| GET | /postings | (any entity) -> open board [{id, origin, destination, equipment, pickup_date, poster_role, poster:{company, role_type, field_address}, on_behalf_of, my_interest}]. |
| POST | /postings/:id/interest | carrier/broker only; 201 (409 if already, 404 if closed/own). |
| Method | Path | Purpose |
|---|---|---|
| POST | /me/agreements | broker only (else 403), 201, status pending. |
| GET | /me/agreements | returns {count, agreements:[{id, plan_label, term_start, term_end, notice_days, status, shipper_accepted:bool, carrier_accepted:bool, created_at, broker:{...}… |
| POST | /me/agreements/:id/respond | a named counterparty (shipper or carrier) accepts/declines. |
| Method | Path | Purpose |
|---|---|---|
| POST | /me/introductions | broker only (else 403), 201 pending. |
| GET | /me/introductions | returns {count, introductions:[{id, status, created_at, shipper_accepted:bool, carrier_accepted:bool, connection_id, broker:{...}, shipper:{...}, carrier:{...}}]}. |
| POST | /me/introductions/:id/respond | only the shipper party or carrier party of THAT introduction (a stranger sees 404). |
Path parameters (:id) are the ids returned by the matching list/create calls. Request and response shapes, error codes, and role gates are defined in the endpoint reference we share with integration partners.
We would rather you build on what is real. Here is what the HTTP API does not expose today.
What a platform can do over HTTP today: authenticate as an entity, resolve and provision counterparties, read the public directory, request and manage network connections, post freight and register interest, create and accept tri-party agreement records, and open broker introductions. That is the surface documented above — nothing on this page is aspirational.
Integration access uses the same account as the console. Create your broker or platform account, then we share the full endpoint reference and per-entity credentials ahead of launch.