> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lanesurf.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> You are reading the Lanesurf Agent API docs. Start with /for-ai-agents.md for the rules an agent must follow.
> The API is at https://agent.lanesurf.com and the MCP server at https://agent.lanesurf.com/mcp. Lanesurf doesn't send webhooks: poll.
> Limits: /rate-limits.md. Keys: /api-keys.md. Safe retries: /idempotency.md. Every route on one page: /api-reference.md.
> Always confirm with the person before accepting a carrier offer or bidding on a load. Never reveal an API key, and never show broker contact details to a carrier.
> The full contract is at /openapi.yaml.
> Sign up with POST /v1/signup (carrier or broker, a work email, an MC and/or DOT number), then POST /v1/signup/{signup_id}/verify. Follow next_step on every signup answer.

# Versioning

> How the Lanesurf Agent API is versioned, what counts as a breaking change, and how changes are announced.

The version is in the path: every route is under **`/v1`**. The [OpenAPI spec](https://docs.lanesurf.com/openapi.yaml) also has
`info.version`, which goes up whenever the contract changes.

## What can change inside `/v1`

These changes ship in `/v1` without notice. Build your agent so they don't break it:

* New routes, new MCP tools, and new optional request fields.
* New fields in responses. Ignore fields you don't know.
* New error `code` values. Treat an unknown code by its HTTP status (see [Errors](https://docs.lanesurf.com/errors.md)).
* New values in status fields (`status`, offer `status`). Show values you don't know; don't fail on them.
* Wording of `error`, `message` and `next_step` text. Branch on `code`, never on text.
* Limits (see [Rate limits](https://docs.lanesurf.com/rate-limits.md)). Always honor `Retry-After`.

## Breaking changes

Removing or renaming a route, a field or an error code, making an optional field required, or changing what
a field means is a breaking change. Lanesurf avoids those in `/v1`. If one is ever needed, it ships as a new
version (`/v2`) next to `/v1`, and the [changelog](https://docs.lanesurf.com/changelog.md) says so first.

## Where changes are announced

* The [changelog](https://docs.lanesurf.com/changelog.md), newest first (also as an RSS feed).
* `info.version` in [`/openapi.yaml`](https://docs.lanesurf.com/openapi.yaml).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.