Skip to main content
POST
Step 2 of 2. Send the 8-digit code the person received. Returns the API key once; store it securely. Codes expire after 10 minutes and allow 5 attempts. If the answer was lost on the way, send the same code again while it’s valid: you get a working key, or 409 already_redeemed once the first key has been used. Brokers also send name, job_title and company_name (and optionally phone and website). If any required one is missing you get 422 missing_fields before an attempt is used, so ask for them and send the same code again. The MC/DOT number and email come from step 1. The brokerage is created unverified with carrier outreach off (activated: false): Lanesurf reviews it, then turns outreach on. Until then loads you post are saved and show stalled. Carriers: Lanesurf checks the carrier by DOT/MC number and compares the email’s domain with the carrier’s record. principal.verification is:
  • verified: the check confirmed the carrier (the email’s domain matches an email on the carrier’s record, and the record doesn’t show the carrier’s authority as inactive). Full access: trucks, lanes, load search, load details, truck matches and bids.
  • needs_review: the check couldn’t confirm it: no match, carrier not found, check unavailable, inactive or broker-only authority, an MC and a DOT of different carriers, or a shared mailbox domain (free mail, ISP mail such as att.net or comcast.net, disposable inboxes), which never counts as a match because anyone can hold a mailbox there. Your carrier account is under review until Lanesurf’s team verifies it; the same key then gets full access. Until then the key can post and manage trucks and lanes and list its own bids, but can’t search loads, read a load, get truck matches, list outreach or bid (403 verification_required).
Nobody is refused for not matching. Every reply has next_step.

Path Parameters

signup_id
string<uuid>
required

The signup_id from POST /v1/signup.

Body

application/json

Carriers send code. Brokers also send name, job_title and company_name (required) and optionally phone and website. MC/DOT and the email come from POST /v1/signup.

code
string
required
Pattern: ^[0-9]{8}$
Example:

"48291307"

role
enum<string>

Optional. If sent it must match the signup.

Available options:
carrier,
broker
name
string

Brokers: the person's full name.

Maximum string length: 200
Example:

"Dana Reyes"

job_title
string

Brokers: the person's job title at the brokerage.

Maximum string length: 100
Example:

"Carrier Sales Manager"

company_name
string

Brokers: the brokerage's name, as carriers should hear it.

Maximum string length: 200
Example:

"Acme Freight LLC"

phone
string

Brokers, optional: E.164; a 10-digit US number is accepted.

Example:

"+12145550100"

website
string

Brokers, optional: an http(s) address; https:// is added when no scheme is given.

Maximum string length: 300
Example:

"https://acmefreight.example.com"

Response

The new API key. Follow next_step.

api_key
string
required

Shown once. Store it securely.

Example:

"ls_live_..."

principal
object
required
next_step
string
required

For the agent. Exactly what to do next and which MCP tool to call (REST path in brackets).

activated
boolean

Brokers only. false until Lanesurf reviews the new brokerage and turns carrier outreach on. Loads posted before then are saved and show stalled.

message
string

For people. A carrier under review: "your carrier account is under review; ...". A new brokerage: outreach starts after Lanesurf's review.