Skip to Content
FR8 Factory Docs

Authentication

Bearer API keys — scoping, failure modes, and zero-downtime rotation.

Every request carries your API key as a Bearer token:

Authorization: Bearer fr8_live_your_key_here

There is no other authentication mechanism — no cookies, no sessions, no OAuth flow.

Scope

A key belongs to exactly one customer account. Requests authenticated with your key can only ever return loads that belong to your company — this is enforced structurally on our side, not by a filter you pass. There is no parameter that widens scope.

Failure modes

SituationResponse
No Authorization header401 {"error": "Unauthorized"}
Malformed header (not Bearer <token>)401 {"error": "Unauthorized"}
Unknown key401 {"error": "Unauthorized"}
Revoked key401 {"error": "Unauthorized"}

All four are deliberately identical — a 401 never tells you (or anyone else) whether a key exists or used to exist. If you get a persistent 401 with a key you believe is valid, contact your account contact rather than debugging the response.

Key handling

  • Store the key in a secret manager; never commit it to source control. It's shown exactly once at creation and cannot be recovered — only replaced.
  • Don't put the key in URLs or logs. The Authorization header is the only place it belongs.
  • Treat a suspected leak as a rotation: ask for a new key, cut over, then have the old one revoked.

Rotation without downtime

Your account can hold two active keys at once, specifically so you can rotate with zero downtime:

  1. Ask your account contact for a second key.
  2. Deploy your integration with the new key.
  3. Confirm traffic works, then ask us to revoke the old key.

Revocation is immediate: the old key starts returning 401 on its next request.

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.