canonical: https://jentic.com/apis/dat.com/dat

# DAT Freight API

Jentic publishes the only available OpenAPI specification for DAT Freight API, keeping it validated and agent-ready. DAT operates the largest North American load board for freight brokers and carriers, exposing rate intelligence, load posting, truck availability, and carrier lookup through a single API. The 9-endpoint surface covers rates lookup and history, load posting and search, truck availability, and DOT-number-based carrier checks. Authentication uses bearer tokens against the https://api.dat.com base URL.

## For AI agents

Look up freight rates, post and search loads, advertise truck availability, and check carrier DOT details across the DAT freight marketplace.

## Scope

Does not handle parcel shipping, customs filings, or last-mile delivery - use for North American truckload freight rates, load board postings, truck availability, and DOT-based carrier lookup only.

## Capabilities

- Look up current freight rates between origin and destination lanes
- Retrieve historical rate trends for a specific freight lane
- Post available loads to the DAT load board for carriers to find
- Search the DAT load board for matching loads as a carrier
- Advertise truck availability against specific origins and destinations
- Look up carrier safety and operating data by DOT number

## Use cases

### Broker Rate Quoting

Quote shippers in real time using current and historical lane rates from DAT instead of static rate cards. POST `/rates/lookup` returns a current point-in-time rate, and GET `/rates/history` returns trend data for the same lane. Suitable for freight brokerages building modern quoting tools or rate APIs for their shippers.

Example prompt: Call POST `/rates/lookup` for a Chicago to Atlanta dry van lane and pair it with GET `/rates/history` for the same lane to produce a quote with a 30-day rate trend.

### Automated Load Posting and Matching

Post loads directly from a transportation management system to the DAT load board and pull matching trucks. POST /loads creates a load, GET /loads searches existing loads, and GET /trucks lists available capacity. Useful for brokers and 3PLs that already manage loads in another system.

Example prompt: Post a 45000 lb dry van load originating in Dallas with a delivery in Phoenix, then poll GET /trucks for matching capacity over the next two days.

### Carrier Vetting Workflows

Vet carriers before tendering loads by pulling DOT-based carrier information directly from DAT. GET `/carriers/{dotNumber}` returns identifying details from the carrier's DOT profile. Useful for compliance teams that need a programmatic vetting step before dispatch.

Example prompt: Look up carrier DOT 1234567 via GET `/carriers/{dotNumber}` and return the operating name and authority status for the broker's vetting checklist.

### Capacity Planning for Carriers

Help carriers plan repositioning by combining truck postings with rate history on candidate lanes. POST /trucks advertises availability, and GET `/rates/history` surfaces lanes worth deadheading toward. Suitable for fleet planners and asset-based carrier tools.

Example prompt: Post a truck available in Memphis on Friday, then call GET `/rates/history` for outbound lanes from Memphis and rank them by recent average rate.

### Agent-Driven Freight Operations via Jentic

AI agents that operate inside a brokerage or carrier's TMS can call DAT through Jentic without holding the bearer token. The agent searches Jentic for the relevant intent, loads the schema, and posts loads, looks up rates, or checks carriers using credentials held in your Jentic One instance. This keeps DAT credentials isolated per operator.

Example prompt: Use Jentic to search 'look up a freight rate', load POST `/rates/lookup`, and execute it with the lane and equipment type from the user's quoting request.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/rates/lookup` | Look up the current rate for a freight lane |
| GET | `/rates/history` | Get historical rate trends for a lane |
| POST | `/loads` | Post a load to the DAT load board |
| GET | `/loads` | Search loads on the DAT load board |
| POST | `/trucks` | Post truck availability |
| GET | `/trucks` | Search available trucks |
| GET | `/carriers/{dotNumber}` | Look up a carrier by DOT number |

## Key resources

- **Rates** — Look up current and historical freight rates by lane
- **Load Board** — Post and search loads on the DAT load board
- **Trucks** — Post and search truck availability
- **Carriers** — Look up carrier identity and operating data by DOT number

## Why Jentic

- **Setup:** Wiring the DAT Freight API by hand means learning its bearer auth against api.dat.com and building the request and retry plumbing for rate lookups, load board postings, and truck availability yourself. Through Jentic you install once, import the DAT Freight API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** DAT carries most freight details in the request body, with only the carrier lookup keyed by a DOT number in the path (`/carriers/{dotNumber}`), so limit the agent to the operations it needs, such as looking up a rate or posting a load. Every operation the agent can run is one you added to that allowed set.
- **Credential handling:** Your DAT bearer token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'look up a freight rate' or 'post a load to the board', and Jentic returns the matching DAT operation with its input schema so the agent calls the right endpoint without parsing the DAT integration documentation.

## Related APIs

- **eBay Buy Deal API** — eBay Buy Deal exposes consumer goods marketplaces; DAT exposes the freight that moves those goods.
- **Salesforce API** — Salesforce stores customer and load opportunity data; DAT supplies freight rates and capacity.
- **HubSpot CRM Companies** — HubSpot Companies stores carrier and shipper records; DAT provides the freight market data attached to them.

## FAQ

### Why is there no official OpenAPI spec for DAT Freight API?

DAT does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call DAT Freight API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the DAT Freight API use?

The DAT Freight API uses bearer token authentication via the bearerAuth scheme - the access token is sent in the Authorization header. Through Jentic the bearer token sits in the vault and never enters the agent's context.

### Can I post loads to the DAT load board with this API?

Yes. POST /loads adds a load to the DAT load board with origin, destination, equipment type, and weight, and GET /loads searches existing postings.

### What are the rate limits for the DAT Freight API?

The OpenAPI spec does not declare explicit numeric limits. Production limits are issued under your DAT subscription - apply backoff on 429 responses and batch lane lookups where possible.

### How do I look up a freight rate through Jentic?

Run pip install jentic, then search Jentic for 'look up a freight rate', load the POST `/rates/lookup` schema, and execute it with the origin, destination, and equipment type. Jentic injects the bearer token at call time.

### Does the DAT Freight API let me look up carriers by DOT number?

Yes. GET `/carriers/{dotNumber}` returns DAT's carrier identity and operating data for the specified DOT number, useful for vetting workflows before tendering loads.

### Can I limit what my agent is allowed to do with the DAT Freight API?

Yes. Because you run your own self-hosted Jentic One instance, your rules decide which DAT operations the agent may call and which credentials it may use. You can allow just a rate lookup on POST `/rates/lookup`, or add load posting on POST /loads, truck availability on /trucks, or a carrier DOT lookup on GET `/carriers/{dotNumber}`, and leave everything else out. Every operation the agent can run is one you added to that allowed set.
