{ "status": "covered", "load_id": "3f2a9c4e-1d7b-4c55-8a7e-0b9d6e5f1234", "tms_id": "api-7c1e0b5a2f4d4c8e9a3b6d1f0e2c4a8b", "post_with": { "email": "jane@loads.example.com", "phone": "+14155550100" }, "message": "This Idempotency-Key was already used for this load: this is the original load, not a new one. Check GET /v1/loads/3f2a9c4e-1d7b-4c55-8a7e-0b9d6e5f1234.", "next_step": "The load is covered by the accepted offer (winner); stop polling. Lanesurf does not contact the carrier: tell the person to reach out to the winner (contact_email / contact_phone) to book, and to send the rate confirmation from their own TMS. Lanesurf has also emailed the brokerage's reps the carrier's details."}
Loads API
Post a load
Send a load as JSON fields. Lanesurf starts finding carriers.
{ "status": "covered", "load_id": "3f2a9c4e-1d7b-4c55-8a7e-0b9d6e5f1234", "tms_id": "api-7c1e0b5a2f4d4c8e9a3b6d1f0e2c4a8b", "post_with": { "email": "jane@loads.example.com", "phone": "+14155550100" }, "message": "This Idempotency-Key was already used for this load: this is the original load, not a new one. Check GET /v1/loads/3f2a9c4e-1d7b-4c55-8a7e-0b9d6e5f1234.", "next_step": "The load is covered by the accepted offer (winner); stop polling. Lanesurf does not contact the carrier: tell the person to reach out to the winner (contact_email / contact_phone) to book, and to send the rate confirmation from their own TMS. Lanesurf has also emailed the brokerage's reps the carrier's details."}
Send the load as JSON fields (the LoadFields schema). The minimum is: equipment_type, the
first origin’s city, state and pickup_ready_date, and the last destination’s city, state
and delivery_ready_date. Commodity defaults to “General freight” (returned in assumed).
Rate is optional. Numbers may be sent as numbers or strings; one that isn’t a number answers 400.If something required is missing you get 422missing_fields with a missing list of exact
field paths (e.g. destinations[0].delivery_ready_date). Ask the person only for those, then send
the whole load again.When the load is complete you get 201 with status: sourcing and a load_id. Lanesurf starts
reaching carriers. post_with, when the answer has it, is the email and phone to put on the load
wherever it is advertised, so carrier replies reach Lanesurf. It comes back only when Lanesurf has set
a posting email and phone for your key; keys made by signing in from an AI app don’t have one yet.A brokerage that signed up through the API starts with carrier outreach off: its loads are saved
with status: stalled and a status_reason saying outreach starts after Lanesurf’s review.Every reply, and the missing_fields error, has next_step: what the agent should do next.Retries. The Idempotency-Key header is required (up to 200 characters; a new UUID per load).
Without it the post is refused with 400idempotency_key_required, because a retry after a
timeout would otherwise create a second load and Lanesurf would contact the same carriers twice.
The key is scoped to the API key that sends it. With the same API key and the same Idempotency-Key:
First post: 201, a new load.
Retry with the same load: 200 with the original load and its current status (sourcing,
covered, …). No second load.
Retry with a different load: 422idempotency_key_reused. Nothing is created or changed.
Retry while the first post is still running: 409idempotency_in_progress with Retry-After: 5.
Wait, then retry.
The same Idempotency-Key from a different API key, even at the same brokerage, creates a different
load. Use a new key for each new load.
Required. Any string up to 200 characters, unique per load (a UUID works). Scoped to the API key that sends
it. A retry of the same load with the same key from the same API key answers 200 with the original
load, so a retry never creates a second one. A different load with a used key answers 422
idempotency_key_reused; a retry while the first post is still running answers 409
idempotency_in_progress. The same key from a different API key, even at the same brokerage, creates
a different load.
Maximum string length: 200
Example:
"6b1f0c2e-load-4471"
Body
application/json
A load as fields. Required: equipment_type, the first origin's city, state and
pickup_ready_date (or pickup_by_date), and the last destination's city, state and
delivery_ready_date (or delivery_by_date). Fields typed string-or-number accept either
(40000 or "40000"; $ and , are ignored). A value that isn't a number ("about 1250") answers
400invalid_request naming the field; nothing is posted.
Your own load number (your TMS or customer reference). Shown on the load and in the Lanesurf dashboard.
Maximum string length: 100
Example:
"PO-4471"
Response
A retry of the same load with an Idempotency-Key this API key already used. This is the original
load with its current status; no second load was created. assumed is not set.
A new load is sourcing, or stalled when the brokerage signed up through the API and Lanesurf
hasn't turned carrier outreach on yet (status_reason says so). On an Idempotency-Key retry (200)
this is the original load's current status; see LoadStatus.
The email and phone to put on the load wherever it is advertised, so carrier replies reach Lanesurf. Only set when Lanesurf has set a posting email and phone for the key; keys made by signing in from an AI app don't have one yet.
What happens next, for people. On an Idempotency-Key retry it says the key was already used for
this load and this is the original load, not a new one.
"Carrier outreach starts after Lanesurf's review of your brokerage. This load is saved and starts sourcing once outreach is on; nothing to do until then."
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Lanesurf Agent API","description":"Let any AI agent get a freight load covered, or get a truck loaded, through Lanesurf.","colors":{"primary":"#2563EB","light":"#60A5FA","dark":"#1D4ED8"},"logo":{"light":"https://mintcdn.com/lanesurf-d98c59ed/XupxBXiERw20rl0s/logo/light.svg?fit=max\u0026auto=format\u0026n=XupxBXiERw20rl0s\u0026q=85\u0026s=e7e783e919601573a03ed1dcf02233f8","dark":"https://mintcdn.com/lanesurf-d98c59ed/XupxBXiERw20rl0s/logo/dark.svg?fit=max\u0026auto=format\u0026n=XupxBXiERw20rl0s\u0026q=85\u0026s=9c19154496fe52a5616ae0d98c489570","href":"/"},"favicon":"https://mintcdn.com/lanesurf-d98c59ed/XupxBXiERw20rl0s/favicon.png?fit=max\u0026auto=format\u0026n=XupxBXiERw20rl0s\u0026q=85\u0026s=f2c5b6e71d9aaa614f7f04cfa13d3e21","navbar":{"links":[{"href":"mailto:support@lanesurf.com","label":"Support"},{"href":"https://www.lanesurf.com","label":"lanesurf.com"}]},"footer":{"socials":{"website":"https://www.lanesurf.com"}},"contextual":{"options":["copy","view","chatgpt","claude","grok","perplexity","download-spec"],"display":"header"},"markdown":{"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."]},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lanesurf-d98c59ed","hasAudioNarration":false,"actualSubdomain":"lanesurf-d98c59ed","customDomains":["docs.lanesurf.com"],"gitSource":{"type":"github","owner":"lanesurf-org","repo":"agent-ai-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae61b0caf08fdd71062c1a8","collectionId":"8fd05299-2b32-4bca-b0a0-35925c6f2e50","liveDeploymentHistoryId":"6ae61b0caf08fdd71062c1a8","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae61b0caf08fdd71062c1a8","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Carriers","count":22},{"language":"default","tag":"Brokers","count":18},{"language":"default","tag":"Reference","count":14},{"language":"default","tag":"Loads API","count":12},{"language":"default","tag":"Get started","count":10},{"language":"default","tag":"Guides","count":9},{"language":"default","tag":"Trucks API","count":6},{"language":"default","tag":"Loads and bids API","count":5},{"language":"default","tag":"Sign-up API","count":3},{"language":"default","tag":"Lanes API","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".nav-logo{height:34px!important}"}],"page":{"pagePath":"api-reference/broker-loads/post-a-load","slug":"/api-reference/broker-loads/post-a-load","pageMetadata":{"title":"Post a load","description":"Send a load as JSON fields. Lanesurf starts finding carriers.","deprecated":null,"version":null,"sidebarTitle":"Post a load","openapi":"/openapi.yaml post /v1/loads","href":"/api-reference/broker-loads/post-a-load","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Send a load as JSON fields. Lanesurf starts finding carriers.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components};return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Send the load as JSON fields (the `,_jsx(_components.code,{children:`LoadFields`}),` schema). The minimum is: `,_jsx(_components.code,{children:`equipment_type`}),`, the\nfirst origin’s `,_jsx(_components.code,{children:`city`}),`, `,_jsx(_components.code,{children:`state`}),` and `,_jsx(_components.code,{children:`pickup_ready_date`}),`, and the last destination’s `,_jsx(_components.code,{children:`city`}),`, `,_jsx(_components.code,{children:`state`}),`\nand `,_jsx(_components.code,{children:`delivery_ready_date`}),`. Commodity defaults to “General freight” (returned in `,_jsx(_components.code,{children:`assumed`}),`).\nRate is optional. Numbers may be sent as numbers or strings; one that isn’t a number answers 400.`]}),`\n`,_jsxs(_components.p,{children:[`If something required is missing you get `,_jsx(_components.strong,{children:`422`}),` `,_jsx(_components.code,{children:`missing_fields`}),` with a `,_jsx(_components.code,{children:`missing`}),` list of exact\nfield paths (e.g. `,_jsx(_components.code,{children:`destinations[0].delivery_ready_date`}),`). Ask the person only for those, then send\nthe whole load again.`]}),`\n`,_jsxs(_components.p,{children:[`When the load is complete you get `,_jsx(_components.strong,{children:`201`}),` with `,_jsx(_components.code,{children:`status: sourcing`}),` and a `,_jsx(_components.code,{children:`load_id`}),`. Lanesurf starts\nreaching carriers. `,_jsx(_components.code,{children:`post_with`}),`, when the answer has it, is the email and phone to put on the load\nwherever it is advertised, so carrier replies reach Lanesurf. It comes back only when Lanesurf has set\na posting email and phone for your key; keys made by signing in from an AI app don’t have one yet.`]}),`\n`,_jsxs(_components.p,{children:[`A brokerage that signed up through the API starts with carrier outreach off: its loads are saved\nwith `,_jsx(_components.code,{children:`status: stalled`}),` and a `,_jsx(_components.code,{children:`status_reason`}),` saying outreach starts after Lanesurf’s review.`]}),`\n`,_jsxs(_components.p,{children:[`Every reply, and the `,_jsx(_components.code,{children:`missing_fields`}),` error, has `,_jsx(_components.code,{children:`next_step`}),`: what the agent should do next.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Retries.`}),` The `,_jsx(_components.code,{children:`Idempotency-Key`}),` header is `,_jsx(_components.strong,{children:`required`}),` (up to 200 characters; a new UUID per load).\nWithout it the post is refused with `,_jsx(_components.strong,{children:`400`}),` `,_jsx(_components.code,{children:`idempotency_key_required`}),`, because a retry after a\ntimeout would otherwise create a second load and Lanesurf would contact the same carriers twice.\nThe key is scoped to the API key that sends it. With the same API key and the same `,_jsx(_components.code,{children:`Idempotency-Key`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`First post: `,_jsx(_components.strong,{children:`201`}),`, a new load.`]}),`\n`,_jsxs(_components.li,{children:[`Retry with the same load: `,_jsx(_components.strong,{children:`200`}),` with the original load and its current `,_jsx(_components.code,{children:`status`}),` (`,_jsx(_components.code,{children:`sourcing`}),`,\n`,_jsx(_components.code,{children:`covered`}),`, …). No second load.`]}),`\n`,_jsxs(_components.li,{children:[`Retry with a different load: `,_jsx(_components.strong,{children:`422`}),` `,_jsx(_components.code,{children:`idempotency_key_reused`}),`. Nothing is created or changed.`]}),`\n`,_jsxs(_components.li,{children:[`Retry while the first post is still running: `,_jsx(_components.strong,{children:`409`}),` `,_jsx(_components.code,{children:`idempotency_in_progress`}),` with `,_jsx(_components.code,{children:`Retry-After: 5`}),`.\nWait, then retry.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The same `,_jsx(_components.code,{children:`Idempotency-Key`}),` from a different API key, even at the same brokerage, creates a different\nload. Use a new key for each new load.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Post a load","description":"Send a load as JSON fields. Lanesurf starts finding carriers.","deprecated":null,"version":null,"sidebarTitle":"Post a load","openapi":"/openapi.yaml post /v1/loads","href":"/api-reference/broker-loads/post-a-load","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Broker loads"],"summary":"Post a load","operationId":"postLoad","x-mint":{"metadata":{"title":"Post a load","sidebarTitle":"Post a load","description":"Send a load as JSON fields. Lanesurf starts finding carriers."},"content":"Send the load as JSON fields (the `LoadFields` schema). The minimum is: `equipment_type`, the\nfirst origin's `city`, `state` and `pickup_ready_date`, and the last destination's `city`, `state`\nand `delivery_ready_date`. Commodity defaults to \"General freight\" (returned in `assumed`).\nRate is optional. Numbers may be sent as numbers or strings; one that isn't a number answers 400.\n\nIf something required is missing you get **422** `missing_fields` with a `missing` list of exact\nfield paths (e.g. `destinations[0].delivery_ready_date`). Ask the person only for those, then send\nthe whole load again.\n\nWhen the load is complete you get **201** with `status: sourcing` and a `load_id`. Lanesurf starts\nreaching carriers. `post_with`, when the answer has it, is the email and phone to put on the load\nwherever it is advertised, so carrier replies reach Lanesurf. It comes back only when Lanesurf has set\na posting email and phone for your key; keys made by signing in from an AI app don't have one yet.\n\nA brokerage that signed up through the API starts with carrier outreach off: its loads are saved\nwith `status: stalled` and a `status_reason` saying outreach starts after Lanesurf's review.\n\nEvery reply, and the `missing_fields` error, has `next_step`: what the agent should do next.\n\n**Retries.** The `Idempotency-Key` header is **required** (up to 200 characters; a new UUID per load).\nWithout it the post is refused with **400** `idempotency_key_required`, because a retry after a\ntimeout would otherwise create a second load and Lanesurf would contact the same carriers twice.\nThe key is scoped to the API key that sends it. With the same API key and the same `Idempotency-Key`:\n\n- First post: **201**, a new load.\n- Retry with the same load: **200** with the original load and its current `status` (`sourcing`,\n `covered`, …). No second load.\n- Retry with a different load: **422** `idempotency_key_reused`. Nothing is created or changed.\n- Retry while the first post is still running: **409** `idempotency_in_progress` with `Retry-After: 5`.\n Wait, then retry.\n\nThe same `Idempotency-Key` from a different API key, even at the same brokerage, creates a different\nload. Use a new key for each new load.\n"},"description":"Send a load as JSON fields. Lanesurf starts finding carriers.","parameters":["6ad2e13b-7777-47a2-b157-b91272aa9aa5"],"requestBody":"4d02439c-4ee4-404c-a953-37153f422e7f","responses":{"200":"de6f0edb-a88c-4edd-8442-9adf24d5f101","201":"ed722d2f-17d0-4848-9c52-72448db1df94","400":"4e8ef992-387a-4771-9b46-b1e97351e831","401":"def816a0-0bbd-4c19-bf4e-8e2d0d039174","403":"7caaf65e-77c9-403e-b7ca-6f8bbde9d419","409":"08f2e0af-62d8-4660-91e5-721eb9d2bab4","422":"dd8b4ae8-becb-4141-882d-5a44613b259a","429":"0dcba3b6-1b00-4bd0-90af-f51671cb9072","500":"e8191227-097a-4571-8259-e00d82fa5886","502":"eb7bf64c-187e-4f48-8cf8-79f929413086","503":"550fd3e8-c0c5-4493-beb3-632fb20ceef5"},"method":"post","type":"path","servers":["23a3a396-6c85-4043-970f-44c0c809dd8e"],"security":["6035daa8-0518-463a-af69-0d34b5a6d06e"],"path":"/v1/loads","baseUrlOptions":["https://agent.lanesurf.com"],"title":"Post a load","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"6ad2e13b-7777-47a2-b157-b91272aa9aa5":{"name":"Idempotency-Key","in":"header","required":true,"description":"Required. Any string up to 200 characters, unique per load (a UUID works). Scoped to the API key that sends\nit. A retry of the same load with the same key from the same API key answers 200 with the original\nload, so a retry never creates a second one. A different load with a used key answers 422\n`idempotency_key_reused`; a retry while the first post is still running answers 409\n`idempotency_in_progress`. The same key from a different API key, even at the same brokerage, creates\na different load.\n","schema":{"type":"string","maxLength":200,"example":"6b1f0c2e-load-4471","isRequired":true,"description":"Required. Any string up to 200 characters, unique per load (a UUID works). Scoped to the API key that sends\nit. A retry of the same load with the same key from the same API key answers 200 with the original\nload, so a retry never creates a second one. A different load with a used key answers 422\n`idempotency_key_reused`; a retry while the first post is still running answers 409\n`idempotency_in_progress`. The same key from a different API key, even at the same brokerage, creates\na different load.\n","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"A load as fields. Required: `equipment_type`, the first origin's `city`, `state` and\n`pickup_ready_date` (or `pickup_by_date`), and the last destination's `city`, `state` and\n`delivery_ready_date` (or `delivery_by_date`). Fields typed string-or-number accept either\n(`40000` or `\"40000\"`; `$` and `,` are ignored). A value that isn't a number (`\"about 1250\"`) answers\n**400** `invalid_request` naming the field; nothing is posted.\n","required":["equipment_type","origins","destinations"],"properties":{"equipment_type":{"type":"string","example":"Dry Van","description":"e.g. Dry Van, Reefer, Flatbed, Step Deck.","isRequired":true,"uniqueKey":"equipment_type","typeLabel":"string"},"origins":{"type":"array","minItems":1,"description":"Pickup stops, in order.","items":{"type":"object","required":["city","state"],"properties":{"city":{"type":"string","example":"Dallas","isRequired":true,"uniqueKey":"origins.items.[INDEX].city","typeLabel":"string"},"state":{"type":"string","example":"TX","description":"Two-letter state or province.","isRequired":true,"uniqueKey":"origins.items.[INDEX].state","typeLabel":"string"},"zip_code":{"type":"string","uniqueKey":"origins.items.[INDEX].zip_code","typeLabel":"string"},"pickup_ready_date":{"type":"string","example":"2026-10-23","description":"Earliest pickup, date (YYYY-MM-DD) or date-time. On the first origin, this or pickup_by_date is required.","uniqueKey":"origins.items.[INDEX].pickup_ready_date","typeLabel":"string"},"pickup_by_date":{"type":"string","description":"Latest pickup, date or date-time.","uniqueKey":"origins.items.[INDEX].pickup_by_date","typeLabel":"string"},"pickup_appointment_type":{"type":"string","description":"FCFS or APPOINTMENT. Other values are ignored.","example":"FCFS","uniqueKey":"origins.items.[INDEX].pickup_appointment_type","typeLabel":"string"}},"uniqueKey":"origins.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"origins","typeLabel":"object[]"},"destinations":{"type":"array","minItems":1,"description":"Delivery stops, in order.","items":{"type":"object","required":["city","state"],"properties":{"city":{"type":"string","example":"Atlanta","isRequired":true,"uniqueKey":"destinations.items.[INDEX].city","typeLabel":"string"},"state":{"type":"string","example":"GA","isRequired":true,"uniqueKey":"destinations.items.[INDEX].state","typeLabel":"string"},"zip_code":{"type":"string","uniqueKey":"destinations.items.[INDEX].zip_code","typeLabel":"string"},"delivery_ready_date":{"type":"string","example":"2026-10-24","description":"Earliest delivery, date or date-time. On the last destination, this or delivery_by_date is required.","uniqueKey":"destinations.items.[INDEX].delivery_ready_date","typeLabel":"string"},"delivery_by_date":{"type":"string","description":"Latest delivery, date or date-time.","uniqueKey":"destinations.items.[INDEX].delivery_by_date","typeLabel":"string"},"delivery_appointment_type":{"type":"string","description":"FCFS or APPOINTMENT. Other values are ignored.","example":"APPOINTMENT","uniqueKey":"destinations.items.[INDEX].delivery_appointment_type","typeLabel":"string"}},"uniqueKey":"destinations.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"destinations","typeLabel":"object[]"},"weight_lbs":{"oneOf":[{"type":"string","example":40000,"uniqueKey":"weight_lbs.oneOf.0","typeLabel":"string"},{"type":"number","example":40000,"uniqueKey":"weight_lbs.oneOf.1","typeLabel":"number"}],"uniqueKey":"weight_lbs","typeLabel":"string | number"},"commodity":{"type":"string","description":"Defaults to \"General freight\".","uniqueKey":"commodity","typeLabel":"string"},"rate_min":{"oneOf":[{"type":"string","description":"Posted rate. If only one of rate_min / rate_max is given it is used for both.","uniqueKey":"rate_min.oneOf.0","typeLabel":"string"},{"type":"number","description":"Posted rate. If only one of rate_min / rate_max is given it is used for both.","uniqueKey":"rate_min.oneOf.1","typeLabel":"number"}],"uniqueKey":"rate_min","typeLabel":"string | number"},"rate_max":{"oneOf":[{"type":"string","description":"Most the broker will pay.","uniqueKey":"rate_max.oneOf.0","typeLabel":"string"},{"type":"number","description":"Most the broker will pay.","uniqueKey":"rate_max.oneOf.1","typeLabel":"number"}],"uniqueKey":"rate_max","typeLabel":"string | number"},"currency":{"type":"string","example":"USD","description":"USD, CAD or MXN (any letter case). Over REST any other value is ignored, not rejected; the MCP tool's schema allows only these three.","uniqueKey":"currency","typeLabel":"string"},"temperature":{"oneOf":[{"type":"string","description":"Reefer setpoint (°F).","uniqueKey":"temperature.oneOf.0","typeLabel":"string"},{"type":"number","description":"Reefer setpoint (°F).","uniqueKey":"temperature.oneOf.1","typeLabel":"number"}],"uniqueKey":"temperature","typeLabel":"string | number"},"is_palletized":{"type":"boolean","uniqueKey":"is_palletized","typeLabel":"boolean"},"pallet_count":{"oneOf":[{"type":"string","uniqueKey":"pallet_count.oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"pallet_count.oneOf.1","typeLabel":"number"}],"uniqueKey":"pallet_count","typeLabel":"string | number"},"driver_requirements":{"type":"string","description":"Say \"team\" for a team load. Other text is not used.","uniqueKey":"driver_requirements","typeLabel":"string"},"special_requirements":{"type":"string","description":"Used as the special instructions when explicit_special_instructions is empty.","uniqueKey":"special_requirements","typeLabel":"string"},"explicit_special_instructions":{"type":"string","description":"Special instructions for carriers.","uniqueKey":"explicit_special_instructions","typeLabel":"string"},"reference_number":{"type":"string","maxLength":100,"description":"Your own load number (your TMS or customer reference). Shown on the load and in the Lanesurf dashboard.","example":"PO-4471","uniqueKey":"reference_number","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"equipment_type":"Dry Van","weight_lbs":40000,"rate_max":1800,"origins":[{"city":"Dallas","state":"TX","pickup_ready_date":"2026-10-23"}],"destinations":[{"city":"Atlanta","state":"GA","delivery_ready_date":"2026-10-24"}]},"examples":{"Example":{"title":"Example","value":{"equipment_type":"Dry Van","weight_lbs":40000,"rate_max":1800,"origins":[{"city":"Dallas","state":"TX","pickup_ready_date":"2026-10-23"}],"destinations":[{"city":"Atlanta","state":"GA","delivery_ready_date":"2026-10-24"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"de6f0edb-a88c-4edd-8442-9adf24d5f101":{"description":"A retry of the same load with an `Idempotency-Key` this API key already used. This is the original\nload with its current `status`; no second load was created. `assumed` is not set.\n","content":{"application/json":{"schema":{"type":"object","required":["status","load_id","next_step"],"properties":{"status":{"type":"string","enum":["sourcing","stalled","covered","inactive","deleted"],"description":"A new load is `sourcing`, or `stalled` when the brokerage signed up through the API and Lanesurf\nhasn't turned carrier outreach on yet (`status_reason` says so). On an `Idempotency-Key` retry (200)\nthis is the original load's current status; see `LoadStatus`.\n","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"load_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"load_id","typeLabel":"string\u003cuuid>"},"next_step":{"type":"string","description":"For the agent. Exactly what to do next and which MCP tool to call (REST path in brackets).","isRequired":true,"uniqueKey":"next_step","typeLabel":"string"},"tms_id":{"type":"string","description":"Lanesurf's name for the load (starts with `api-`). Works in place of `load_id` in `/v1/loads/{id}`.","example":"api-7c1e0b5a2f4d4c8e9a3b6d1f0e2c4a8b","uniqueKey":"tms_id","typeLabel":"string"},"post_with":{"type":"object","description":"The email and phone to put on the load wherever it is advertised, so carrier replies reach Lanesurf. Only set when Lanesurf has set a posting email and phone for the key; keys made by signing in from an AI app don't have one yet.","properties":{"email":{"type":"string","format":"email","uniqueKey":"post_with.email","typeLabel":"string\u003cemail>"},"phone":{"type":"string","uniqueKey":"post_with.phone","typeLabel":"string"}},"uniqueKey":"post_with","typeLabel":"object"},"assumed":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"assumed.additionalProperties","typeLabel":"string"},"description":"Values Lanesurf filled in because they weren't given (e.g. commodity). Not set on a retry.","uniqueKey":"assumed","typeLabel":"object"},"message":{"type":"string","description":"What happens next, for people. On an `Idempotency-Key` retry it says the key was already used for\nthis load and this is the original load, not a new one.\n","uniqueKey":"message","typeLabel":"string"},"status_reason":{"type":"string","description":"Set when `status` is `stalled`.","example":"Carrier outreach starts after Lanesurf's review of your brokerage. This load is saved and starts sourcing once outreach is on; nothing to do until then.","uniqueKey":"status_reason","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"status":"covered","load_id":"3f2a9c4e-1d7b-4c55-8a7e-0b9d6e5f1234","tms_id":"api-7c1e0b5a2f4d4c8e9a3b6d1f0e2c4a8b","post_with":{"email":"jane@loads.example.com","phone":"+14155550100"},"message":"This Idempotency-Key was already used for this load: this is the original load, not a new one. Check GET /v1/loads/3f2a9c4e-1d7b-4c55-8a7e-0b9d6e5f1234.","next_step":"The load is covered by the accepted offer (winner); stop polling. Lanesurf does not contact the carrier: tell the person to reach out to the winner (contact_email / contact_phone) to book, and to send the rate confirmation from their own TMS. Lanesurf has also emailed the brokerage's reps the carrier's details."},"examples":{"Example":{"title":"Example","value":{"status":"covered","load_id":"3f2a9c4e-1d7b-4c55-8a7e-0b9d6e5f1234","tms_id":"api-7c1e0b5a2f4d4c8e9a3b6d1f0e2c4a8b","post_with":{"email":"jane@loads.example.com","phone":"+14155550100"},"message":"This Idempotency-Key was already used for this load: this is the original load, not a new one. Check GET /v1/loads/3f2a9c4e-1d7b-4c55-8a7e-0b9d6e5f1234.","next_step":"The load is covered by the accepted offer (winner); stop polling. Lanesurf does not contact the carrier: tell the person to reach out to the winner (contact_email / contact_phone) to book, and to send the rate confirmation from their own TMS. Lanesurf has also emailed the brokerage's reps the carrier's details."}}},"exampleType":"examples"}},"exampleType":"examples"},"ed722d2f-17d0-4848-9c52-72448db1df94":{"description":"The load was created and Lanesurf is contacting carriers.","content":{"application/json":{"schema":{"type":"object","required":["status","load_id","next_step"],"properties":{"status":{"type":"string","enum":["sourcing","stalled","covered","inactive","deleted"],"description":"A new load is `sourcing`, or `stalled` when the brokerage signed up through the API and Lanesurf\nhasn't turned carrier outreach on yet (`status_reason` says so). On an `Idempotency-Key` retry (200)\nthis is the original load's current status; see `LoadStatus`.\n","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"load_id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"load_id","typeLabel":"string\u003cuuid>"},"next_step":{"type":"string","description":"For the agent. Exactly what to do next and which MCP tool to call (REST path in brackets).","isRequired":true,"uniqueKey":"next_step","typeLabel":"string"},"tms_id":{"type":"string","description":"Lanesurf's name for the load (starts with `api-`). Works in place of `load_id` in `/v1/loads/{id}`.","example":"api-7c1e0b5a2f4d4c8e9a3b6d1f0e2c4a8b","uniqueKey":"tms_id","typeLabel":"string"},"post_with":{"type":"object","description":"The email and phone to put on the load wherever it is advertised, so carrier replies reach Lanesurf. Only set when Lanesurf has set a posting email and phone for the key; keys made by signing in from an AI app don't have one yet.","properties":{"email":{"type":"string","format":"email","uniqueKey":"post_with.email","typeLabel":"string\u003cemail>"},"phone":{"type":"string","uniqueKey":"post_with.phone","typeLabel":"string"}},"uniqueKey":"post_with","typeLabel":"object"},"assumed":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"assumed.additionalProperties","typeLabel":"string"},"description":"Values Lanesurf filled in because they weren't given (e.g. commodity). Not set on a retry.","uniqueKey":"assumed","typeLabel":"object"},"message":{"type":"string","description":"What happens next, for people. On an `Idempotency-Key` retry it says the key was already used for\nthis load and this is the original load, not a new one.\n","uniqueKey":"message","typeLabel":"string"},"status_reason":{"type":"string","description":"Set when `status` is `stalled`.","example":"Carrier outreach starts after Lanesurf's review of your brokerage. This load is saved and starts sourcing once outreach is on; nothing to do until then.","uniqueKey":"status_reason","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"status":"sourcing","load_id":"3f2a9c4e-1d7b-4c55-8a7e-0b9d6e5f1234","tms_id":"api-7c1e0b5a2f4d4c8e9a3b6d1f0e2c4a8b","post_with":{"email":"jane@loads.example.com","phone":"+14155550100"},"assumed":{"commodity":"General freight"},"message":"Lanesurf is contacting carriers. Put jane@loads.example.com / +14155550100 on the load wherever you advertise it so carrier replies reach Lanesurf. Check GET /v1/loads/3f2a9c4e-1d7b-4c55-8a7e-0b9d6e5f1234 for offers.","next_step":"Tell the person what Lanesurf assumed (assumed). Tell them to advertise the load with the post_with email and phone so carrier replies reach Lanesurf. Then call get_load with load_id every 2 to 5 minutes to see carrier offers (GET /v1/loads/3f2a9c4e-1d7b-4c55-8a7e-0b9d6e5f1234)."},"examples":{"Example":{"title":"Example","value":{"status":"sourcing","load_id":"3f2a9c4e-1d7b-4c55-8a7e-0b9d6e5f1234","tms_id":"api-7c1e0b5a2f4d4c8e9a3b6d1f0e2c4a8b","post_with":{"email":"jane@loads.example.com","phone":"+14155550100"},"assumed":{"commodity":"General freight"},"message":"Lanesurf is contacting carriers. Put jane@loads.example.com / +14155550100 on the load wherever you advertise it so carrier replies reach Lanesurf. Check GET /v1/loads/3f2a9c4e-1d7b-4c55-8a7e-0b9d6e5f1234 for offers.","next_step":"Tell the person what Lanesurf assumed (assumed). Tell them to advertise the load with the post_with email and phone so carrier replies reach Lanesurf. Then call get_load with load_id every 2 to 5 minutes to see carrier offers (GET /v1/loads/3f2a9c4e-1d7b-4c55-8a7e-0b9d6e5f1234)."}}},"exampleType":"examples"}},"exampleType":"examples"},"4e8ef992-387a-4771-9b46-b1e97351e831":{"description":"`invalid_request`: the body isn't JSON load fields, or the `Idempotency-Key` is over 200 characters.\n\n`idempotency_key_required`: no `Idempotency-Key` header. Nothing was created.\n\n`load_rejected`: Lanesurf couldn't process the load (check the stop cities, states, zip codes and\ndates). Don't retry it unchanged; fix it and send it with a new `Idempotency-Key`.\n","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"A message for people.","example":"invalid API key","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A stable machine-readable code. Branch on this, not on `error`.","enum":["missing_api_key","invalid_api_key","wrong_role","verification_required","invalid_request","missing_fields","not_found","already_covered","invalid_state","already_bid","bid_decided","idempotency_in_progress","idempotency_key_reused","idempotency_key_required","load_rejected","offer_changed","bid_update_limit","existing_customer","already_redeemed","rate_limited","invalid_code","signup_expired","broker_name_taken","broker_name_mismatch","unavailable","upstream_error","internal"],"example":"invalid_api_key","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"missing":{"type":"array","description":"`missing_fields` only: exact field names or paths still needed.","items":{"type":"string","uniqueKey":"missing.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missing","typeLabel":"string[]"},"next_step":{"type":"string","description":"On signup errors and on every broker load tool's errors (`list_loads`, `post_load`, `get_load`, `load_outreach`, accept, decline, covered).","uniqueKey":"next_step","typeLabel":"string"},"current_rate":{"type":"number","description":"`offer_changed` only: the offer's rate now.","uniqueKey":"current_rate","typeLabel":"number"},"request_id":{"type":"string","description":"This request's id (also the `X-Request-Id` response header). Quote it to Lanesurf support.","example":"req_0192f3a4-7b1c-7d2e-9f00-1a2b3c4d5e6f","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"invalid API key","code":"invalid_api_key","missing":["\u003cstring>"],"next_step":"\u003cstring>","current_rate":123,"request_id":"req_0192f3a4-7b1c-7d2e-9f00-1a2b3c4d5e6f"}}},"exampleType":"generated"}},"exampleType":"generated"},"def816a0-0bbd-4c19-bf4e-8e2d0d039174":{"description":"`missing_api_key` (no `Authorization` header) or `invalid_api_key` (wrong, malformed or revoked key).","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"A message for people.","example":"invalid API key","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A stable machine-readable code. Branch on this, not on `error`.","enum":["missing_api_key","invalid_api_key","wrong_role","verification_required","invalid_request","missing_fields","not_found","already_covered","invalid_state","already_bid","bid_decided","idempotency_in_progress","idempotency_key_reused","idempotency_key_required","load_rejected","offer_changed","bid_update_limit","existing_customer","already_redeemed","rate_limited","invalid_code","signup_expired","broker_name_taken","broker_name_mismatch","unavailable","upstream_error","internal"],"example":"invalid_api_key","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"missing":{"type":"array","description":"`missing_fields` only: exact field names or paths still needed.","items":{"type":"string","uniqueKey":"missing.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missing","typeLabel":"string[]"},"next_step":{"type":"string","description":"On signup errors and on every broker load tool's errors (`list_loads`, `post_load`, `get_load`, `load_outreach`, accept, decline, covered).","uniqueKey":"next_step","typeLabel":"string"},"current_rate":{"type":"number","description":"`offer_changed` only: the offer's rate now.","uniqueKey":"current_rate","typeLabel":"number"},"request_id":{"type":"string","description":"This request's id (also the `X-Request-Id` response header). Quote it to Lanesurf support.","example":"req_0192f3a4-7b1c-7d2e-9f00-1a2b3c4d5e6f","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"invalid API key","code":"invalid_api_key"},"examples":{"Example":{"title":"Example","value":{"error":"invalid API key","code":"invalid_api_key"}}},"exampleType":"examples"}},"exampleType":"examples"},"7caaf65e-77c9-403e-b7ca-6f8bbde9d419":{"description":"`wrong_role`: this key's role can't use this route (a carrier key on a broker route, or the reverse).","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"A message for people.","example":"invalid API key","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A stable machine-readable code. Branch on this, not on `error`.","enum":["missing_api_key","invalid_api_key","wrong_role","verification_required","invalid_request","missing_fields","not_found","already_covered","invalid_state","already_bid","bid_decided","idempotency_in_progress","idempotency_key_reused","idempotency_key_required","load_rejected","offer_changed","bid_update_limit","existing_customer","already_redeemed","rate_limited","invalid_code","signup_expired","broker_name_taken","broker_name_mismatch","unavailable","upstream_error","internal"],"example":"invalid_api_key","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"missing":{"type":"array","description":"`missing_fields` only: exact field names or paths still needed.","items":{"type":"string","uniqueKey":"missing.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missing","typeLabel":"string[]"},"next_step":{"type":"string","description":"On signup errors and on every broker load tool's errors (`list_loads`, `post_load`, `get_load`, `load_outreach`, accept, decline, covered).","uniqueKey":"next_step","typeLabel":"string"},"current_rate":{"type":"number","description":"`offer_changed` only: the offer's rate now.","uniqueKey":"current_rate","typeLabel":"number"},"request_id":{"type":"string","description":"This request's id (also the `X-Request-Id` response header). Quote it to Lanesurf support.","example":"req_0192f3a4-7b1c-7d2e-9f00-1a2b3c4d5e6f","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"this API key can't use broker routes","code":"wrong_role"},"examples":{"Example":{"title":"Example","value":{"error":"this API key can't use broker routes","code":"wrong_role"}}},"exampleType":"examples"}},"exampleType":"examples"},"08f2e0af-62d8-4660-91e5-721eb9d2bab4":{"description":"`idempotency_in_progress`: a post with this `Idempotency-Key` from this API key is still being\nprocessed. Wait `Retry-After` seconds (5), then retry with the same key and the same load.\n","headers":{"Retry-After":{"description":"Seconds to wait before trying again.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"A message for people.","example":"invalid API key","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A stable machine-readable code. Branch on this, not on `error`.","enum":["missing_api_key","invalid_api_key","wrong_role","verification_required","invalid_request","missing_fields","not_found","already_covered","invalid_state","already_bid","bid_decided","idempotency_in_progress","idempotency_key_reused","idempotency_key_required","load_rejected","offer_changed","bid_update_limit","existing_customer","already_redeemed","rate_limited","invalid_code","signup_expired","broker_name_taken","broker_name_mismatch","unavailable","upstream_error","internal"],"example":"invalid_api_key","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"missing":{"type":"array","description":"`missing_fields` only: exact field names or paths still needed.","items":{"type":"string","uniqueKey":"missing.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missing","typeLabel":"string[]"},"next_step":{"type":"string","description":"On signup errors and on every broker load tool's errors (`list_loads`, `post_load`, `get_load`, `load_outreach`, accept, decline, covered).","uniqueKey":"next_step","typeLabel":"string"},"current_rate":{"type":"number","description":"`offer_changed` only: the offer's rate now.","uniqueKey":"current_rate","typeLabel":"number"},"request_id":{"type":"string","description":"This request's id (also the `X-Request-Id` response header). Quote it to Lanesurf support.","example":"req_0192f3a4-7b1c-7d2e-9f00-1a2b3c4d5e6f","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"a post with this Idempotency-Key is still being processed; retry in a few seconds","code":"idempotency_in_progress"},"examples":{"Example":{"title":"Example","value":{"error":"a post with this Idempotency-Key is still being processed; retry in a few seconds","code":"idempotency_in_progress"}}},"exampleType":"examples"}},"exampleType":"examples"},"dd8b4ae8-becb-4141-882d-5a44613b259a":{"description":"`missing_fields`: required fields are missing. Send the whole load again with them.\n\n`idempotency_key_reused`: this API key already used this `Idempotency-Key` for a different load.\nNothing was created or changed. Use a new key for a new load.\n","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["error","code","missing"],"properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"string"},"code":{"type":"string","enum":["missing_fields"],"isRequired":true,"uniqueKey":"oneOf.0.code","typeLabel":"enum\u003cstring>"},"missing":{"type":"array","description":"Exact field names or paths still needed.","items":{"type":"string","example":"destinations[0].delivery_ready_date","uniqueKey":"oneOf.0.missing.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"oneOf.0.missing","typeLabel":"string[]"},"next_step":{"type":"string","description":"For the agent. Exactly what to do next and which MCP tool to call (REST path in brackets).","uniqueKey":"oneOf.0.next_step","typeLabel":"string"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.error","typeLabel":"string"},"code":{"type":"string","enum":["idempotency_key_reused"],"isRequired":true,"uniqueKey":"oneOf.1.code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"missing_fields":{"title":"missing_fields","value":{"error":"the load is missing required fields; send them and try again","code":"missing_fields","missing":["destinations[0].delivery_ready_date"]}},"idempotency_key_reused":{"title":"idempotency_key_reused","value":{"error":"this Idempotency-Key was already used for a different load; use a new key for a new load","code":"idempotency_key_reused"}}},"exampleType":"examples"}},"exampleType":"examples"},"0dcba3b6-1b00-4bd0-90af-f51671cb9072":{"description":"`rate_limited`: too many requests. Signup has limits per contact, per carrier and per IP (the 300 per 10 minutes\nlimit groups IPv6 addresses by /64). Every authenticated `/v1` route is limited to 120 requests per minute\nper API key, counted on each Lanesurf server. Wait `Retry-After`\nseconds, then retry.\n","headers":{"Retry-After":{"description":"Seconds to wait before trying again.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"A message for people.","example":"invalid API key","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A stable machine-readable code. Branch on this, not on `error`.","enum":["missing_api_key","invalid_api_key","wrong_role","verification_required","invalid_request","missing_fields","not_found","already_covered","invalid_state","already_bid","bid_decided","idempotency_in_progress","idempotency_key_reused","idempotency_key_required","load_rejected","offer_changed","bid_update_limit","existing_customer","already_redeemed","rate_limited","invalid_code","signup_expired","broker_name_taken","broker_name_mismatch","unavailable","upstream_error","internal"],"example":"invalid_api_key","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"missing":{"type":"array","description":"`missing_fields` only: exact field names or paths still needed.","items":{"type":"string","uniqueKey":"missing.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missing","typeLabel":"string[]"},"next_step":{"type":"string","description":"On signup errors and on every broker load tool's errors (`list_loads`, `post_load`, `get_load`, `load_outreach`, accept, decline, covered).","uniqueKey":"next_step","typeLabel":"string"},"current_rate":{"type":"number","description":"`offer_changed` only: the offer's rate now.","uniqueKey":"current_rate","typeLabel":"number"},"request_id":{"type":"string","description":"This request's id (also the `X-Request-Id` response header). Quote it to Lanesurf support.","example":"req_0192f3a4-7b1c-7d2e-9f00-1a2b3c4d5e6f","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"too many requests for this API key; slow down","code":"rate_limited"},"examples":{"Example":{"title":"Example","value":{"error":"too many requests for this API key; slow down","code":"rate_limited"}}},"exampleType":"examples"}},"exampleType":"examples"},"e8191227-097a-4571-8259-e00d82fa5886":{"description":"`internal`: unexpected error. Safe to retry later.","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"A message for people.","example":"invalid API key","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A stable machine-readable code. Branch on this, not on `error`.","enum":["missing_api_key","invalid_api_key","wrong_role","verification_required","invalid_request","missing_fields","not_found","already_covered","invalid_state","already_bid","bid_decided","idempotency_in_progress","idempotency_key_reused","idempotency_key_required","load_rejected","offer_changed","bid_update_limit","existing_customer","already_redeemed","rate_limited","invalid_code","signup_expired","broker_name_taken","broker_name_mismatch","unavailable","upstream_error","internal"],"example":"invalid_api_key","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"missing":{"type":"array","description":"`missing_fields` only: exact field names or paths still needed.","items":{"type":"string","uniqueKey":"missing.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missing","typeLabel":"string[]"},"next_step":{"type":"string","description":"On signup errors and on every broker load tool's errors (`list_loads`, `post_load`, `get_load`, `load_outreach`, accept, decline, covered).","uniqueKey":"next_step","typeLabel":"string"},"current_rate":{"type":"number","description":"`offer_changed` only: the offer's rate now.","uniqueKey":"current_rate","typeLabel":"number"},"request_id":{"type":"string","description":"This request's id (also the `X-Request-Id` response header). Quote it to Lanesurf support.","example":"req_0192f3a4-7b1c-7d2e-9f00-1a2b3c4d5e6f","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"invalid API key","code":"invalid_api_key","missing":["\u003cstring>"],"next_step":"\u003cstring>","current_rate":123,"request_id":"req_0192f3a4-7b1c-7d2e-9f00-1a2b3c4d5e6f"}}},"exampleType":"generated"}},"exampleType":"generated"},"eb7bf64c-187e-4f48-8cf8-79f929413086":{"description":"`upstream_error`: a Lanesurf system behind the API failed. Safe to retry later.","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"A message for people.","example":"invalid API key","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A stable machine-readable code. Branch on this, not on `error`.","enum":["missing_api_key","invalid_api_key","wrong_role","verification_required","invalid_request","missing_fields","not_found","already_covered","invalid_state","already_bid","bid_decided","idempotency_in_progress","idempotency_key_reused","idempotency_key_required","load_rejected","offer_changed","bid_update_limit","existing_customer","already_redeemed","rate_limited","invalid_code","signup_expired","broker_name_taken","broker_name_mismatch","unavailable","upstream_error","internal"],"example":"invalid_api_key","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"missing":{"type":"array","description":"`missing_fields` only: exact field names or paths still needed.","items":{"type":"string","uniqueKey":"missing.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missing","typeLabel":"string[]"},"next_step":{"type":"string","description":"On signup errors and on every broker load tool's errors (`list_loads`, `post_load`, `get_load`, `load_outreach`, accept, decline, covered).","uniqueKey":"next_step","typeLabel":"string"},"current_rate":{"type":"number","description":"`offer_changed` only: the offer's rate now.","uniqueKey":"current_rate","typeLabel":"number"},"request_id":{"type":"string","description":"This request's id (also the `X-Request-Id` response header). Quote it to Lanesurf support.","example":"req_0192f3a4-7b1c-7d2e-9f00-1a2b3c4d5e6f","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"error":"a Lanesurf system behind the API failed; try again later","code":"upstream_error"},"examples":{"Example":{"title":"Example","value":{"error":"a Lanesurf system behind the API failed; try again later","code":"upstream_error"}}},"exampleType":"examples"}},"exampleType":"examples"},"550fd3e8-c0c5-4493-beb3-632fb20ceef5":{"description":"`unavailable`: Lanesurf couldn't check the API key right now (the key may be fine; don't ask for a new one): wait `Retry-After` (30) seconds and send the same request again.","headers":{"Retry-After":{"description":"Seconds to wait before trying again.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"A message for people.","example":"invalid API key","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"A stable machine-readable code. Branch on this, not on `error`.","enum":["missing_api_key","invalid_api_key","wrong_role","verification_required","invalid_request","missing_fields","not_found","already_covered","invalid_state","already_bid","bid_decided","idempotency_in_progress","idempotency_key_reused","idempotency_key_required","load_rejected","offer_changed","bid_update_limit","existing_customer","already_redeemed","rate_limited","invalid_code","signup_expired","broker_name_taken","broker_name_mismatch","unavailable","upstream_error","internal"],"example":"invalid_api_key","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"missing":{"type":"array","description":"`missing_fields` only: exact field names or paths still needed.","items":{"type":"string","uniqueKey":"missing.items.[INDEX]","typeLabel":"string"},"uniqueKey":"missing","typeLabel":"string[]"},"next_step":{"type":"string","description":"On signup errors and on every broker load tool's errors (`list_loads`, `post_load`, `get_load`, `load_outreach`, accept, decline, covered).","uniqueKey":"next_step","typeLabel":"string"},"current_rate":{"type":"number","description":"`offer_changed` only: the offer's rate now.","uniqueKey":"current_rate","typeLabel":"number"},"request_id":{"type":"string","description":"This request's id (also the `X-Request-Id` response header). Quote it to Lanesurf support.","example":"req_0192f3a4-7b1c-7d2e-9f00-1a2b3c4d5e6f","uniqueKey":"request_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"invalid API key","code":"invalid_api_key","missing":["\u003cstring>"],"next_step":"\u003cstring>","current_rate":123,"request_id":"req_0192f3a4-7b1c-7d2e-9f00-1a2b3c4d5e6f"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"6035daa8-0518-463a-af69-0d34b5a6d06e":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"ls_live_\u003ckey>","description":"One key per broker rep or per carrier signup. Keep it secret.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"23a3a396-6c85-4043-970f-44c0c809dd8e":{"url":"https://agent.lanesurf.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"ls_live_\u003ckey>","description":"One key per broker rep or per carrier signup. Keep it secret.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"One key per broker rep or per carrier signup. Keep it secret.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"lanesurf-d98c59ed","siteName":"Lanesurf Agent API","title":"Post a load - Lanesurf Agent API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-31T16:24:09.605Z","originalFileLocation":"api-reference/broker-loads/post-a-load.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Send a load as JSON fields. Lanesurf starts finding carriers.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Lanesurf Agent API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lanesurf-d98c59ed/aDfoxgMnpA3AXS2W/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/lanesurf-d98c59ed/aDfoxgMnpA3AXS2W/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lanesurf-d98c59ed/aDfoxgMnpA3AXS2W/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lanesurf-d98c59ed/aDfoxgMnpA3AXS2W/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lanesurf-d98c59ed/aDfoxgMnpA3AXS2W/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lanesurf-d98c59ed/aDfoxgMnpA3AXS2W/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lanesurf-d98c59ed/aDfoxgMnpA3AXS2W/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lanesurf-d98c59ed/aDfoxgMnpA3AXS2W/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lanesurf-d98c59ed/aDfoxgMnpA3AXS2W/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Post a load - Lanesurf Agent API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Send a load as JSON fields. Lanesurf starts finding carriers.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Lanesurf Agent API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.lanesurf.com/api-reference/broker-loads/post-a-load\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lanesurf-d98c59ed.mintlify.app/_mintlify/api/og/v2?division=Loads+API\u0026amp;title=Post+a+load\u0026amp;description=Send+a+load+as+JSON+fields.+Lanesurf+starts+finding+carriers.\u0026amp;theme=0b87e052751a04850cc4f191\u0026amp;signature=1262605e4bf3ff31c4bd159f9a6450f5a3b17e807a2799225333819122f27d26\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Post a load - Lanesurf Agent API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Send a load as JSON fields. Lanesurf starts finding carriers.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lanesurf-d98c59ed.mintlify.app/_mintlify/api/og/v2?division=Loads+API\u0026amp;title=Post+a+load\u0026amp;description=Send+a+load+as+JSON+fields.+Lanesurf+starts+finding+carriers.\u0026amp;theme=0b87e052751a04850cc4f191\u0026amp;signature=1262605e4bf3ff31c4bd159f9a6450f5a3b17e807a2799225333819122f27d26\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/lanesurf-d98c59ed/aDfoxgMnpA3AXS2W/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Lanesurf Agent API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2563EB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.lanesurf.com/api-reference/broker-loads/post-a-load\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/broker-loads/post-a-load.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.lanesurf.com/#organization\",\"name\":\"Lanesurf Agent API\",\"url\":\"https://docs.lanesurf.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lanesurf-d98c59ed/XupxBXiERw20rl0s/logo/light.svg?fit=max\u0026auto=format\u0026n=XupxBXiERw20rl0s\u0026q=85\u0026s=e7e783e919601573a03ed1dcf02233f8\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.lanesurf.com#website\",\"name\":\"Lanesurf Agent API\",\"url\":\"https://docs.lanesurf.com\",\"publisher\":{\"@id\":\"https://docs.lanesurf.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.lanesurf.com/api-reference/broker-loads/post-a-load#webpage\",\"url\":\"https://docs.lanesurf.com/api-reference/broker-loads/post-a-load\",\"name\":\"Post a load\",\"description\":\"Send a load as JSON fields. Lanesurf starts finding carriers.\",\"dateModified\":\"2026-10-31T16:24:09.605Z\",\"isPartOf\":{\"@id\":\"https://docs.lanesurf.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.lanesurf.com/api-reference/broker-loads/post-a-load#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.lanesurf.com/api-reference/broker-loads/post-a-load#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Loads API\",\"item\":\"https://docs.lanesurf.com/api-reference/broker-loads/list-your-loads\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Post a load\",\"item\":\"https://docs.lanesurf.com/api-reference/broker-loads/post-a-load\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.lanesurf.com/api-reference/broker-loads/post-a-load#apireference\",\"headline\":\"Post a load\",\"name\":\"Post a load\",\"description\":\"Send a load as JSON fields. Lanesurf starts finding carriers.\",\"url\":\"https://docs.lanesurf.com/api-reference/broker-loads/post-a-load\",\"mainEntityOfPage\":{\"@id\":\"https://docs.lanesurf.com/api-reference/broker-loads/post-a-load#webpage\"},\"dateModified\":\"2026-10-31T16:24:09.605Z\",\"publisher\":{\"@id\":\"https://docs.lanesurf.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.lanesurf.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Lanesurf Agent API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Lanesurf Agent API","nav":{"global":null,"tabs":[{"tab":"Get started","icon":"rocket","pages":[{"title":"Get started","href":""}]},{"tab":"Brokers","icon":"truck-fast","groups":[{"group":"Guides","pages":[{"title":"Sign up your brokerage","icon":"key","href":"/brokers/get-a-key"},{"title":"Cover a load","icon":"truck-fast","href":"/brokers/cover-a-load"},{"title":"Load status and offers","sidebarTitle":"Status and offers","icon":"list-check","href":"/brokers/load-status"},{"title":"Manage a load","sidebarTitle":"Manage a load","icon":"pen-to-square","href":"/brokers/manage-a-load"}]},{"group":"Sign-up and setup API","pages":[{"title":"Start signup","deprecated":null,"version":null,"sidebarTitle":"Start signup","openapi":"/openapi.yaml post /v1/signup","href":"/api-reference/authentication/start-signup-carrier-or-broker"},{"title":"Verify the code","deprecated":null,"version":null,"sidebarTitle":"Verify the code","openapi":"/openapi.yaml post /v1/signup/{signup_id}/verify","href":"/api-reference/authentication/finish-signup-with-the-code"},{"title":"Get brokerage setup","deprecated":null,"version":null,"sidebarTitle":"Get setup","openapi":"/openapi.yaml get /v1/broker/setup","href":"/api-reference/broker-setup/your-brokerages-setup"},{"title":"Update brokerage setup","deprecated":null,"version":null,"sidebarTitle":"Update setup","openapi":"/openapi.yaml patch /v1/broker/setup","href":"/api-reference/broker-setup/change-your-brokerages-setup"},{"title":"Who am I","deprecated":null,"version":null,"sidebarTitle":"Who am I","openapi":"/openapi.yaml get /v1/me","href":"/api-reference/authentication/who-this-key-belongs-to"}]},{"group":"Loads API","pages":[{"title":"List your loads","description":"The loads your brokerage posted through the API, newest first, a page at a time.","deprecated":null,"version":null,"sidebarTitle":"List your loads","openapi":"/openapi.yaml get /v1/loads","href":"/api-reference/broker-loads/list-your-loads"},{"title":"Post a load","deprecated":null,"version":null,"sidebarTitle":"Post a load","openapi":"/openapi.yaml post /v1/loads","href":"/api-reference/broker-loads/post-a-load"},{"title":"Get load status","description":"Status, carrier offers and the agreed rate.","deprecated":null,"version":null,"sidebarTitle":"Get load status","openapi":"/openapi.yaml get /v1/loads/{id}","href":"/api-reference/broker-loads/load-status-and-carrier-offers"},{"title":"Edit a load","deprecated":null,"version":null,"sidebarTitle":"Edit load","openapi":"/openapi.yaml patch /v1/loads/{id}","href":"/api-reference/broker-loads/edit-a-load"},{"title":"Delete a load","deprecated":null,"version":null,"sidebarTitle":"Delete load","openapi":"/openapi.yaml delete /v1/loads/{id}","href":"/api-reference/broker-loads/delete-a-load"},{"title":"Load outreach","deprecated":null,"version":null,"sidebarTitle":"Load outreach","openapi":"/openapi.yaml get /v1/loads/{id}/outreach","href":"/api-reference/broker-loads/who-was-contacted-on-a-load"},{"title":"Accept an offer","deprecated":null,"version":null,"sidebarTitle":"Accept an offer","openapi":"/openapi.yaml post /v1/loads/{id}/offers/{session_id}/accept","href":"/api-reference/broker-loads/accept-a-carriers-offer"},{"title":"Decline an offer","deprecated":null,"version":null,"sidebarTitle":"Decline an offer","openapi":"/openapi.yaml post /v1/loads/{id}/offers/{session_id}/decline","href":"/api-reference/broker-loads/decline-a-carriers-offer"},{"title":"Mark covered","deprecated":null,"version":null,"sidebarTitle":"Mark covered","openapi":"/openapi.yaml post /v1/loads/{id}/covered","href":"/api-reference/broker-loads/mark-the-load-covered-elsewhere"},{"title":"Pause a load","deprecated":null,"version":null,"sidebarTitle":"Pause load","openapi":"/openapi.yaml post /v1/loads/{id}/pause","href":"/api-reference/broker-loads/pause-a-load"},{"title":"Resume a load","deprecated":null,"version":null,"sidebarTitle":"Resume load","openapi":"/openapi.yaml post /v1/loads/{id}/resume","href":"/api-reference/broker-loads/resume-a-load"},{"title":"Reopen a covered load","deprecated":null,"version":null,"sidebarTitle":"Reopen load","openapi":"/openapi.yaml post /v1/loads/{id}/reopen","href":"/api-reference/broker-loads/reopen-a-covered-load"}]}]},{"tab":"Carriers","icon":"truck","pages":[{"title":"Carriers","href":"/carriers/sign-up"}]},{"tab":"Reference","icon":"book","pages":[{"title":"Reference","href":"/api-reference"}]}]},"basePath":"","title":"Post a load - Lanesurf Agent API","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-B7XKH4J3.js","utils-lOYzL7z-.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DF6jUUIM.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dpsj5f7C.js","snippetPresets-CYeiDe8v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CUFz1YZ_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D8H_iLS4.js","shallow-DdluZBHX.js","getApiPlaygroundDisplay-B9922vev.js","CodeSnippet-CMoRNGYs.js","CodeSnippets-DwyrPHuw.js","Page-DSVu9Ucl.js","getPastedJson-G-zIvlHh.js","icon-B03fnEy0.js","MethodPill-CW7teklc.js","DuplicateIcon-CtO8eekd.js","createIcon-DZTKdM_A.js","DynamicMarkdown-D5M2At0B.js","SectionHeading-C_2NaA2U.js","axios-vUo_bRtp.js","Markdown-D7QRHV3m.js","clsx-D1Z-ELXV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-lvhuD9Du.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CKfC4ywL.js"]}