openapi: 3.0.0 info: title: Opendock Nova API Documentation Appointments Load Offers API description: "## Welcome to Opendock Nova!\n\n#### What is Opendock Nova?\n\nOpendock is an online dock appointment scheduling tool. Facilities such as warehouses, distribution centers, and\nmanufacturing plants use it to organize their docks and schedule appointments for outbound pickups and inbound\ndeliveries.\nYou can read all our knowledge base\narticles [here.](https://community.loadsmart.com/hc/en-us/sections/24987828169619-Opendock-Nova-Warehouse-API)\n\nWe now provide an SSO option for User Authentication. Read\nthe [docs here.](https://community.loadsmart.com/hc/en-us/articles/14944624317075-Single-Sign-On-SSO-SAML-2-0)\n\n---\n\n## Our APIs\n\nWe have 3 main APIs:\n\n- REST API called _Neutron_ for performing standard HTTP operations.\n- Real-time API called _Subspace_ for receiving streaming events whenever objects are Created/Updated/Deleted.\n- A **\"Reference Number Validation\"** aka \"PO Validation\" _protocol_ for validating PO numbers (or similar) before an\n appointment is scheduled. Detailed documentation for it can be found\n here: [PO/Ref Number Validation Implementation](https://community.loadsmart.com/hc/en-us/articles/14946368437907-PO-Ref-Number-Validation-Implementation)\n\n---\n\n## Neutron - REST API\n\nAll endpoints are listed below. Depending on your User Role, some may be forbidden. Almost all endpoints expect a simple\nJWT token to be set in the `Authorization: Bearer` HTTP header. Read more about Bearer\ntokens [here](https://swagger.io/docs/specification/authentication/bearer-authentication/).\n\n### Base URL\n\nThe base URL is the same as it is for this document (look at the current URL in your browser's address bar). For\nexample, our production Neutron Base URL is [https://neutron.opendock.com](https://neutron.opendock.com).\n\n### Authentication\n\nTo start, call the `POST /auth/login` endpoint to exchange your user credentials (email + password) for a simple JWT\ntoken. If you don't have an account yet, reach out to your account admin or contact us for further help.\n\nIf login is successful, the response will be a JWT token to use as your `Bearer` header as described above.\n\nThe JWT expiration time depends on your User Role as well as other factors. You may base64-decode your JWT token to view\nmore technical details about it.\n\n#### Test it:\n\nTo test that your auth headers are set correctly, call the `GET /auth/me` endpoint. It will return a JSON payload with\nyour User information.\n\n---\n\n## Subspace - Real-time Streaming API\n\nSubspace is a _read-only_ API that allows your system to recieve streaming real-time information about changes to your\nAppointments, Warehouses, Docks, etc.\n\nUsing Subspace you can implement a \"push\"-based approach to your integration instead of relying only on \"poll\"-ing\nmethods (which can be inefficient).\n\nSubpsace is based on the famous [`socket.io`](https://socket.io/) library.\n\n### Choosing a socket.io Client\n\nThe socket.io project provides a JavaScript client library that works in the browser as well as NodeJS. However there\nare also client implementations in many other languages including C#, Java, Python, and Go, so you should select the\nappropriate client for your project. A good overview of socket.io and a list of client implementations can be found\nhere: [Socket.IO Introduction](https://socket.io/docs/v4/)\n\n**NOTE:** Currently Opendock uses socket.io server **v4.x** so please make sure to select an appropriate socket.io\nclient version that is protocol compatible.\n\n### Connecting and Authentication\n\nThe base connection URL is the same as the base URL for Neutron above, except with the word \"subspace\" instead of \"\nneutron\". For example, our production Subspace connection URL\nis [wss://subspace.opendock.com](wss://subspace.opendock.com).\n\nFor convenience, the same JWT token obtained from the Neutron `/auth/login` endpoint above is used for Subspace\nauthentication.\n\nConnecting and Authenticating are done in a single operation: simply connect to the following `wss` URL:\n\n```\n?token=\n```\n\nThat can be a little confusing to parse. Here's a real-life example connection string:\n\n```\nwss://subspace.opendock.com?token=eyJhbGciOiJIUzI1Ni...(full token continues)\n```\n\n**NOTE:** Currently Opendock only supports the `websocket` transport, so you must specify this in your connection\nsettings.\n\nHere's an example of connecting to Subspace using the JavaScript client:\n\n```JavaScript\n// NOTE: we assume \"accessToken\" was already obtained earlier via a call to '/auth/login'.\nconst baseSubspaceUrl = 'wss://subspace.opendock.com';\nconst url = `${baseSubspaceUrl}?token=${accessToken}`;\nconst socket = io(url, { transports: ['websocket'] }); // Enforce 'websocket' transport only.\n```\n\n### Listening to events\n\nSubspace emits Create/Update/Delete events for each entity in your Org (Appointment, Warehouse, Dock, etc). Your event\nhandler for these events will receive a JSON object containing the details about the given entity.\n\nOnce your socket.io client instance is connected, you can listen for any of these events by constructing the appropriate\nevent string:\n\nEvent strings follow this pattern:\n\n```\n\"{EventType}-{EntityName}\"\n```\n\n`EventType` can be one of: `create`, `update`, or `delete`.\n\n`EntityName` can be any entity in our REST API, such as: `Appointment`, `Warehouse`, `Dock`, etc.\n\nSo for example, to listen to `create` events for `Appointment` entities you would use:\n\n```\n\"create-Appointment\"\n```\n\nOr to listen to `update` events for `Warehouse` entities you would use:\n\n```\n\"update-Warehouse\"\n```\n\n**NOTE:** The event types are lowercase, but the entity names are capitalized (event strings are case-sensitive).\n\nThere is also a `\"heartbeat\"` event that you can listen to, which will emit every 5 seconds with a timestamp and the\nNeutron API version. This can be helpful for ensuring that your connection to Subspace is working correctly.\n\n### Caveats and Limitations\n\nSubspace does not do any sort of \"catch-up\" or \"replay\" of events, you will only get the events that occur after you\nconnect to the socket.io server.\n\nIf your client loses connection for some time, the event messages will not be queued and delivered when you next\nconnect, you will simply start receiving new messages after the point in time that you connected.\n\nFor this reason, even when using Subspace, you may need to occasionally supplement with calls to our REST API (ie.\ngetAll) to fetch entities and keep in sync with the data in Opendock, depending on your needs.\n\n### Example: Listening for Heartbeat\n\nThis event handler will get called periodically with the \"heartbeat\" information:\n\n```JavaScript\nsocket.on('heartbeat', (data) => {\n console.log(data);\n});\n```\n\nThis will output something like:\n\n```JSON\n{\n now: '2022-09-15T20:02:20.015Z',\n version: {\n major: '2',\n minor: '5',\n patch: '16',\n commit: '4a443fb\\n'\n }\n}\n```\n\n### Example: Listening for Appointment Creation and Update\n\nIn this example, your event handler will get called whenever an Appointment\nis created in your Org:\n\n```JavaScript\nsocket.on('create-Appointment', (data) => {\n console.log('appt create:', data);\n});\n```\n\nThe `data` your event handler recieves will be a JSON object containing\nthe Appointment details, like this:\n\n```JSON\n{\n \"id\": \"9cd63603-a7ff-43c7-8183-befc19a7a81b\",\n \"createDateTime\": \"2022-07-29T06:49:20Z\",\n \"lastChangedDateTime\": \"2022-07-29T06:49:20Z\",\n \"isActive\": true,\n \"tags\": [],\n \"type\": \"Standard\",\n \"status\": \"Scheduled\",\n \"start\": \"2022-07-29T00:00:00+00:00\",\n \"end\": \"2022-07-29T01:30:00+00:00\",\n ...\n ...\n ...\n}\n```\n\nIf you also wanted to listen for any changes to existing Appointments\nyou could add another listener:\n\n```JavaScript\nsocket.on('create-Appointment', (data) => {\n console.log('appt create:', data);\n});\n\nsocket.on('update-Appointment', (data) => {\n console.log('appt update:', data);\n});\n```\n\nThe `update-Appointment` event handler will receive a similar JSON object\ncontaining the most up-to-date details of the Appointment that was\njust updated.\n\n---\n\n## Nestjsx/Crud\n\n[NestJSX/Crud](https://github.com/nestjsx/crud/wiki/Requests#search) is a robust library designed for creating\nhigh-performance and scalable APIs. With NestJSX/Crud, API\nconsumers can take advantage of a flexible and intuitive approach to querying data.\n\nThis library streamlines the process of searching, sorting, and paginating data to cater to the exact requirements of\nthe API consumer. This feature saves valuable time by allowing the API consumer to bypass irrelevant data, ensuring only\nthe necessary data is obtained.\n\nNote: We encourage use of the `search` parameter (`s=...`), and do not allow use of the deprecated `filter` parameter.\n\n#### Search Examples\n\nFind all active Appointments created or updated since March 15th, 2023 at 8am MST (since created appts also have updated lastChangeDateTime)\n\n```\ns={\"lastChangedDateTime\":{\"$gt\":\"2023-03-15T08:00:00.000-07:00\"}}\n```\n\nFind all soft-deleted (inActive) appointments updated since a date/time (isActive:false indicates soft-deleted)\n\n```\ns={\"$and\":[{\"lastChangedDateTime\": {\"$gt\":\"2023-07-7T00:00:00.000Z\"}},{\"isActive\":false}]}\n```\n\nFind all appointments changed since a date time (both active and inactive).\nThis is useful for integration partners with recurring series who need to know future appointments in the series have been removed\n\n```\ns={\"$and\":[{\"lastChangedDateTime\": {\"$gt\":\"2023-07-7T00:00:00.000Z\"}},{\"$or\":[{\"isActive\":true},{\"isActive\":false}]}]}\n```\n\nFind all Appointment where the `tags` are empty\n\n```\ns={\"tags\": {\"$or\": {\"$isnull\": true, \"$eq\": \"{}\"}}}\n```\n\nFind all Appointments where it includes a tag of `Late`\n\n```\ns={\"tags\":{\"$contL\":\"Late\"}}\n```\n\nFind all appointments in `Scheduled` status set to start after March 15th, 2023 at 8am MST\n\n```\ns={\"$and\":[{\"status\":\"Scheduled\"},{\"start\":{\"$gt\":\"2023-03-15T08:00:00.000-07:00\"}}]}\n```\n\n#### Join examples (with Fields)\n\nTo return data from other tables without the need to make a secondary query, the API consumer can join specific tables\ntogether and request only the fields necessary.\n\nGet the appointment with the carrier and company. This will return a nested `User` with a nested `Company` in the result for\neach appointment.\nOrder matters here. You must first include `user` to get to `user.company`.\n\n```\njoin=user&join=user.company\n```\n\nTo get just the user's email and company's name, you can use the `||` operator.\nBecause `user.companyId = company.id` you must at least include `companyId` on `user`\n\n```\njoin=user||email,companyId&join=user.company||name\n```\n\n#### Other Examples\n\nTo get an appointment's refNumber (PO), start, lastChangedDateTime, and carrier company name\n\n```\ns={\"start\": {\"$gt\":\"2023-03-15T00:00:00.000Z\"}}&join=user||companyId&join=user.company||name&fields=refNumber,lastChangedDateTime,start\n```\n\n---\n" version: v4.144.0 - 39b4253 contact: {} servers: - url: https://neutron.opendock.com description: Production Server - url: https://neutron.staging.opendock.com description: Staging Server tags: - name: Load Offers description: "This API allows third parties to search and accept\navailable Offers.\n\n## Webhook events\n\nThere are few webhook events that can be triggered related to Load Offers API.\nThe following example refers to the webhook events `load_carrier_bounced` and `load_cancelled`:\n```\n{\n \"event\": \"load_carrier_bounced\",\n \"data\": {\n \"load_id\": \"2ed37107-ebe7-4a60-a20f-01d4e74355c8\",\n \"load\": {\n \"id\": \"2ed37107-ebe7-4a60-a20f-01d4e74355c8\",\n \"active_offer\": {\n \"id\": \"ccd37107-ebe7-4a60-a20f-01d4e74355c8\",\n \"price\": 1234.56\n },\n \"carrier\": {\n \"id\": \"89ef54c7-52d5-44a0-b94d-df41eb1aab15\",\n \"mc\": 123456,\n \"dot\": 987654\n },\n \"commodity\": \"BOTTLED WATER\",\n \"distance\": 353.6,\n \"equipment_type\": \"DRV\",\n \"requirements\": {\n \"beer\": false,\n \"chemicals\": null,\n \"ctpat\": null,\n \"food_grade\": null,\n \"frozen\": null,\n \"hazmat\": null,\n \"hvhr\": null,\n \"pharmaceuticals\": null,\n \"produce\": null,\n \"teams\": null,\n \"tsa\": null,\n \"twic\": null,\n \"vented_vans\": null,\n },\n \"stops\": [\n {\n \"address\": \"109 Poland Spring Dr\",\n \"city\": \"Poland\",\n \"country\": \"USA\",\n \"latitude\": 44.031602,\n \"longitude\": -70.355065,\n \"state\": \"ME\",\n \"type\": \"PU\",\n \"window_end\": \"2019-11-28T08:00:00+00:00\",\n \"window_start\": \"2019-11-28T06:00:00+00:00\",\n \"window_timezone\": \"America/New_York\",\n \"requirements\": null,\n \"facility_info\": {\n \"avg_time_spent\":{\n \"pickup\":40,\n \"delivery\": null\n },\n \"detention_rate\": 4\n }\n },\n {\n \"address\": \"6 Westbelt\",\n \"city\": \"Wayne\",\n \"country\": \"USA\",\n \"latitude\": 40.900033,\n \"longitude\": -74.264872,\n \"state\": \"NJ\",\n \"type\": \"DEL\",\n \"window_end\": \"2019-11-29T19:00:00+00:00\",\n \"window_start\": \"2019-11-29T17:00:00+00:00\",\n \"window_timezone\": \"America/New_York\",\n \"requirements\": null,\n \"facility_info\": {\n \"avg_time_spent\":{\n \"pickup\":null,\n \"delivery\": 20\n },\n \"detention_rate\": 9\n }\n },\n ],\n \"numberweight\": 45000.0,\n \"dimensions\": {\"width\": 8.00, \"height\": 9.00, \"length\": 54.00}\n \"ref_number\": \"41324\"\n }\n }\n}\n```\n\nThe following example refers to the webhook events `offer_created` and `offer_removed`:\n```\n{\n \"event\": \"offer_created\",\n \"data\": {\n \"offer\": {\n \"id\": \"ccd37107-ebe7-4a60-a20f-01d4e74355c8\",\n \"price\": 1234.56,\n \"load\": {\n \"equipment_type\": \"DRV\",\n \"commodity\": \"apples\",\n \"weight\": 20000,\n \"dimensions\": {\"width\": 8.00, \"height\": 9.00, \"length\": 54.00}\n \"distance\": 50000,\n \"stops\": [\n {\n \"type\": \"PU\",\n \"address\": \"101 Collins Avenue\",\n \"city\": \"Miami Beach\",\n \"state\": \"FL\",\n \"country\": \"USA\",\n \"requirements\": {\n \"blind_bol\": false,\n \"drop_trailer\": false,\n \"heavy_scale_ticket\": false,\n \"light_scale_ticket\": false\n },\n \"facility_info\": {\n \"avg_time_spent\":{\n \"pickup\":40,\n \"delivery\": null\n },\n \"detention_rate\": 4\n }\n \"zipcode\": \"33139\",\n \"window_start\": \"2020-02-13T09:00:00\",\n \"window_end\": \"2018-02-13T11:00:00\",\n \"window_timezone\": \"America/New_York\"\n },\n {\n \"type\": \"DEL\",\n \"address\": \"2022 Collins Avenue\",\n \"city\": \"Miami Beach\",\n \"state\": \"FL\",\n \"country\": \"USA\",\n \"requirements\": {\n \"blind_bol\": false,\n \"drop_trailer\": false,\n \"heavy_scale_ticket\": false,\n \"light_scale_ticket\": false\n },\n \"facility_info\": {\n \"avg_time_spent\":{\n \"pickup\":null,\n \"delivery\": 20\n },\n \"detention_rate\": 9\n }\n \"window_start\": \"2018-02-14T16:00:00\",\n \"window_end\": \"2018-02-14T18:00:00\",\n \"window_timezone\": \"America/New_York\"\n }\n ],\n \"requirements\": {\n \"beer\": false,\n \"chemicals\": false,\n \"ctpat\": false,\n \"food_grade\": false,\n \"frozen\": false,\n \"hazmat\": false,\n \"hvhr\": false,\n \"pharmaceuticals\": false,\n \"produce\": false,\n \"teams\": false,\n \"tsa\": false,\n \"twic\": false,\n \"vented_vans\": false\n },\n \"ref_number\": \"425631\"\n },\n \"actions\": {\n \"redirect_url\": \"https://loadsmart.com/loads/#/eec5677f-883c-4696-b13b-7539fa98e098\",\n \"accept_url\": \"https://api.loadsmart.com/api/v2/load-offers/offers/ccd37107-ebe7-4a60-a20f-01d4e74355c8/accept\"\n }\n }\n }\n}\n```\n" paths: /api/v2/load-offers/offers: get: summary: Search offers tags: - Load Offers security: - Application-JWT: - load_offers_read description: 'Search offers ' parameters: - in: query name: alcohol schema: description: Show only loads that have/don't have alcoholic commodity (shows all loads if not informed) type: string format: boolean required: false - in: query name: equipment_type schema: description: "The type of truck used to transport the load:\n * `DRV` - Dry van\n * `FBE` - Flatbed\n * `RFR` - Reefer\n * `CON` - Conestoga\n * `CUR` - Curtainside\n * `DDP` - Double drop\n * `IMC` - Intermodal\n * `SDK` - Step deck\n * `STK` - Straight truck\n * `LTL` - Less than truckload\n * `BLK` - Bulk\n * `TNK` - Tanker\n * `OTH` - Others\n\nRepeat the query string in order to search for multiple types at the same time, e.g: `?equipment_type=DRV&equipment_type=FBE`\n" type: string enum: - DRV - FBE - RFR - CON - CUR - DDP - IMC - SDK - STK - LTL - BLK - TNK - OTH required: false - in: query name: start_date schema: description: Date type: string format: YYYY-MM-DD required: false - in: query name: end_date schema: description: Date type: string format: YYYY-MM-DD required: false - in: query name: origin_lat schema: description: Origin latitude type: number required: false - in: query name: origin_lon schema: description: Origin longitude type: number required: false - in: query name: origin_radius schema: description: Radius for origin field (Miles) type: number format: integer required: false - in: query name: destination_lat schema: description: Destination latitude type: number required: false - in: query name: destination_lon schema: description: Destination longitude type: number required: false - in: query name: destination_radius schema: description: Radius for destitation field (Miles) type: number format: integer required: false - in: query name: mc schema: description: Carrier's MC number type: string required: false - in: query name: dot schema: description: Carrier's DOT number type: string required: false responses: '200': description: Success content: application/json: schema: type: object properties: count: description: Number of objects found type: number format: integer next: description: URL for next page of results type: string format: url previous: description: URL for previous page of results type: string format: url results: type: array items: type: object properties: id: type: string description: Offer unique identifier (UUID) price: type: number description: Offer price (USD) load: type: object properties: equipment_type: type: string enum: - DRV - FBE - RFR - CON - CUR - DDP - IMC - SDK - STK - LTL - BLK - TNK - OTH description: The type of truck used to transport the load. Allowed values are DRV (dry van), FBE (flatbed), RFR (reefer), CON (conestoga), CUR (curtainside), DDP (double drop), IMC (intermodal), SDK (step deck), STK (straight truck), LTL (less than truckload), BLK (bulk), TNK (tanker) and OTH for others. commodity: type: string maxLength: 255 description: Name or description of the commodity that is being shipped. weight: type: number minimum: 1 description: Weight of the cargo in pounds (lbs). dimensions: type: object description: 'Dimensions of the cargo in feet (ft). A `null` dimension means that the information is unavailable. ' properties: weight: type: number nullable: true height: type: number nullable: true width: type: number nullable: true distance: type: number minimum: 1 description: Total distance of the shipment, in miles. This counts all stops. stops: type: array items: type: object properties: type: type: string enum: - PU - DEL description: Type of the stop. Pickup (PU) or Delivery (DEL). address: type: string city: type: string state: type: string pattern: ^[A-Z0-9]{1,3}$ description: 'Up to 3-alphanumeric characters representing state or equivalent administrative boundary, from the second part of ISO 3166-2 code definition. For example, Florida is FL, since its ISO 3166-2 is US-FL. ' country: type: string pattern: ^[A-Z]{3}$ description: 3 letter country code (ISO-3166-1 alpha3). latitude: type: number description: Latitude coordinate of the stop longitude: type: number description: Longitude coordinate of the stop zipcode: type: string description: Zipcode of the stop (first five digits) window_start: type: string format: naive date-time description: A datetime that represents the start of a time window for this stop (pickup or delivery). In local time. window_end: type: string format: naive date-time description: A datetime that represents the start of a time window for this stop (pickup or delivery). In local time. window_timezone: type: string description: A timezone identifier for the stop. requirements: type: array description: 'A list of requirements for the Stop, such as drop_trailer, etc. ' facility_info: type: object description: Detention rate and average waiting time on the facility properties: avg_time_spent: type: object description: Average waiting on facility properties: pickup: type: number description: Average waiting time in minutes for pickup delivery: type: number description: Average waiting time in minutes for delivery detention_rate: type: number description: Facility detention rate (0 to 100) requirements: type: object description: 'Requirements for the load ' properties: beer: type: boolean chemicals: type: boolean ctpat: type: boolean food_grade: type: boolean frozen: type: boolean hazmat: type: boolean hvhr: type: boolean pharmaceuticals: type: boolean produce: type: boolean teams: type: boolean tsa: type: boolean twic: type: boolean vented_vans: type: boolean ref_number: type: string description: Human readable Load reference number. required: - ref_number - equipment_type actions: type: object properties: redirect_url: type: string description: URL of offer on Loadsmart website. accept_url: type: string description: URL to accept the offer via API (must be a POST method). example: count: 2 next: null previous: null results: - id: ccd37107-ebe7-4a60-a20f-01d4e74355c8 price: 1234.56 load: equipment_type: DRV commodity: apples weight: 20000 dimensions: width: 8 height: 8 length: 54 distance: 50000 stops: - type: PU address: 101 Collins Avenue city: Miami Beach state: FL country: USA latitude: 41.203996 longitude: -96.115593 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false facility_info: avg_time_spent: pickup: 40 delivery: 180 detention_rate: 4 zipcode: '33139' window_start: 2020-02-13 09:00:00 window_end: 2018-02-13 11:00:00 window_timezone: America/New_York - type: DEL address: 2022 Collins Avenue city: Miami Beach state: FL country: USA latitude: 42.535793 longitude: -70.966568 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false facility_info: avg_time_spent: pickup: 20 delivery: 20 detention_rate: 0 window_start: 2018-02-14 16:00:00 window_end: 2018-02-14 18:00:00 window_timezone: America/New_York requirements: beer: false chemicals: false ctpat: false food_grade: false frozen: false hazmat: false hvhr: false pharmaceuticals: false produce: false teams: false tsa: false twic: false vented_vans: false ref_number: '425631' actions: redirect_url: https://loadsmart.com/loads/#/a440a0df-c3c2-4d70-9acd-7f03f4bc00f4 accept_url: https://api.loadsmart.com/api/v2/load-offers/offers/ccd37107-ebe7-4a60-a20f-01d4e74355c8/accept - id: e79acc24-cbfa-4cc7-92ca-7001279cf064 price: 1234.56 load: equipment_type: DRV commodity: apples weight: 20000 dimensions: width: null height: null length: null distance: 50000 stops: - type: PU address: 101 Collins Avenue city: Miami Beach state: FL country: USA latitude: 41.203996 longitude: -96.115593 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false zipcode: '33139' window_start: 2020-02-13 09:00:00 window_end: 2018-02-13 11:00:00 window_timezone: America/New_York - type: DEL address: 2022 Collins Avenue city: Miami Beach state: FL country: USA latitude: 42.535793 longitude: -70.966568 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false window_start: 2018-02-14 16:00:00 window_end: 2018-02-14 18:00:00 window_timezone: America/New_York requirements: beer: false chemicals: false ctpat: false food_grade: false frozen: false hazmat: false hvhr: false pharmaceuticals: false produce: false teams: false tsa: false twic: false vented_vans: false ref_number: '425821' actions: redirect_url: https://loadsmart.com/loads/#/eec5677f-883c-4696-b13b-7539fa98e098 accept_url: https://api.loadsmart.com/api/v2/load-offers/offers/e79acc24-cbfa-4cc7-92ca-7001279cf064/accept '400': description: Invalid parameters content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description /api/v2/load-offers/offers/{offer_id}: get: summary: Retrieve offer tags: - Load Offers security: - Application-JWT: - load_offers_read parameters: - in: query name: offer_id required: true schema: description: Offer UUID type: string format: uuid responses: '200': description: Success content: application/json: schema: type: object properties: id: type: string description: Offer unique identifier (UUID) price: type: number description: Offer price (USD) load: type: object properties: equipment_type: type: string enum: - DRV - FBE - RFR - CON - CUR - DDP - IMC - SDK - STK - LTL - BLK - TNK - OTH description: The type of truck used to transport the load. Allowed values are DRV (dry van), FBE (flatbed), RFR (reefer), CON (conestoga), CUR (curtainside), DDP (double drop), IMC (intermodal), SDK (step deck), STK (straight truck), LTL (less than truckload), BLK (bulk), TNK (tanker) and OTH for others. commodity: type: string maxLength: 255 description: Name or description of the commodity that is being shipped. weight: type: number minimum: 1 description: Weight of the cargo in pounds (lbs). dimensions: type: object description: 'Dimensions of the cargo in feet (ft). A `null` dimension means that the information is unavailable. ' properties: weight: type: number nullable: true height: type: number nullable: true width: type: number nullable: true distance: type: number minimum: 1 description: Total distance of the shipment, in miles. This counts all stops. stops: type: array items: type: object properties: type: type: string enum: - PU - DEL description: Type of the stop. Pickup (PU) or Delivery (DEL). address: type: string city: type: string state: type: string pattern: ^[A-Z0-9]{1,3}$ description: 'Up to 3-alphanumeric characters representing state or equivalent administrative boundary, from the second part of ISO 3166-2 code definition. For example, Florida is FL, since its ISO 3166-2 is US-FL. ' country: type: string pattern: ^[A-Z]{3}$ description: 3 letter country code (ISO-3166-1 alpha3). latitude: type: number description: Latitude coordinate of the stop longitude: type: number description: Longitude coordinate of the stop zipcode: type: string description: Zipcode of the stop (first five digits) window_start: type: string format: naive date-time description: A datetime that represents the start of a time window for this stop (pickup or delivery). In local time. window_end: type: string format: naive date-time description: A datetime that represents the start of a time window for this stop (pickup or delivery). In local time. window_timezone: type: string description: A timezone identifier for the stop. requirements: type: array description: 'A list of requirements for the Stop, such as drop_trailer, etc. ' facility_info: type: object description: Detention rate and average waiting time on the facility properties: avg_time_spent: type: object description: Average waiting on facility properties: pickup: type: number description: Average waiting time in minutes for pickup delivery: type: number description: Average waiting time in minutes for delivery detention_rate: type: number description: Facility detention rate (0 to 100) requirements: type: object description: 'Requirements for the load ' properties: beer: type: boolean chemicals: type: boolean ctpat: type: boolean food_grade: type: boolean frozen: type: boolean hazmat: type: boolean hvhr: type: boolean pharmaceuticals: type: boolean produce: type: boolean teams: type: boolean tsa: type: boolean twic: type: boolean vented_vans: type: boolean ref_number: type: string description: Human readable Load reference number. required: - ref_number - equipment_type actions: type: object properties: redirect_url: type: string description: URL of offer on Loadsmart website. accept_url: type: string description: URL to accept the offer via API (must be a POST method). example: id: ccd37107-ebe7-4a60-a20f-01d4e74355c8 price: 1234.56 load: equipment_type: DRV commodity: apples weight: 20000 dimensions: width: 8 height: 8 length: 54 distance: 50000 stops: - type: PU address: 101 Collins Avenue city: Miami Beach state: FL country: USA latitude: 41.203996 longitude: -96.115593 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false facility_info: avg_time_spent: pickup: 40 delivery: 180 detention_rate: 4 zipcode: '33139' window_start: 2020-02-13 09:00:00 window_end: 2018-02-13 11:00:00 window_timezone: America/New_York - type: DEL address: 2022 Collins Avenue city: Miami Beach state: FL country: USA latitude: 42.535793 longitude: -70.966568 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false facility_info: avg_time_spent: pickup: 20 delivery: 20 detention_rate: 0 window_start: 2018-02-14 16:00:00 window_end: 2018-02-14 18:00:00 window_timezone: America/New_York requirements: beer: false chemicals: false ctpat: false food_grade: false frozen: false hazmat: false hvhr: false pharmaceuticals: false produce: false teams: false tsa: false twic: false vented_vans: false ref_number: '425631' actions: redirect_url: https://loadsmart.com/loads/#/a440a0df-c3c2-4d70-9acd-7f03f4bc00f4 accept_url: https://api.loadsmart.com/api/v2/load-offers/offers/ccd37107-ebe7-4a60-a20f-01d4e74355c8/accept /api/v2/load-offers/offers/{offer_id}/accept: post: summary: Accept an offer tags: - Load Offers security: - User-JWT: - load_offers_write description: 'Accept an Offer for a Carrier ' parameters: - in: path name: offer_id schema: description: Offer UUID type: string format: uuid required: true responses: '202': description: Accepted content: application/json: schema: properties: id: type: string description: Load unique identifier (UUID) example: id: 2ed37107-ebe7-4a60-a20f-01d4e74355c8 '400': description: Invalid parameters content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description '404': description: Offer not found content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description example: error: object_not_found error_description: Object not found '410': description: Offer no longer available content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description '412': description: Carrier is not eligible to move the Load content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description /api/v2/load-offers/offers/{offer_id}/related: get: summary: Search related offers tags: - Load Offers security: - Application-JWT: - load_offers_read description: 'Search related offers of another offer ' parameters: - in: path name: offer_id required: true schema: description: Offer UUID type: string format: uuid - in: query name: relation required: false schema: description: 'Relation type with the Offer. Possible values `backhaul`, `similar_lane`, `similar_pickup`, `similar_delivery` or `from_delivery` ' type: string responses: '200': description: Success content: application/json: schema: type: object properties: count: description: Number of objects found type: number format: integer next: description: URL for next page of results type: string format: url previous: description: URL for previous page of results type: string format: url results: type: array items: type: object properties: id: type: string description: Offer unique identifier (UUID) price: type: number description: Offer price (USD) relation: type: string description: 'Relation type with the Offer. Possible values `backhaul`, `similar_lane`, `similar_pickup`, `similar_delivery` or `from_delivery` ' load: type: object properties: equipment_type: type: string enum: - DRV - FBE - RFR - CON - CUR - DDP - IMC - SDK - STK - LTL - BLK - TNK - OTH description: The type of truck used to transport the load. Allowed values are DRV (dry van), FBE (flatbed), RFR (reefer), CON (conestoga), CUR (curtainside), DDP (double drop), IMC (intermodal), SDK (step deck), STK (straight truck), LTL (less than truckload), BLK (bulk), TNK (tanker) and OTH for others. commodity: type: string maxLength: 255 description: Name or description of the commodity that is being shipped. weight: type: number minimum: 1 description: Weight of the cargo in pounds (lbs). dimensions: type: object description: 'Dimensions of the cargo in feet (ft). A `null` dimension means that the information is unavailable. ' properties: weight: type: number nullable: true height: type: number nullable: true width: type: number nullable: true distance: type: number minimum: 1 description: Total distance of the shipment, in miles. This counts all stops. stops: type: array items: type: object properties: type: type: string enum: - PU - DEL description: Type of the stop. Pickup (PU) or Delivery (DEL). address: type: string city: type: string state: type: string pattern: ^[A-Z0-9]{1,3}$ description: 'Up to 3-alphanumeric characters representing state or equivalent administrative boundary, from the second part of ISO 3166-2 code definition. For example, Florida is FL, since its ISO 3166-2 is US-FL. ' country: type: string pattern: ^[A-Z]{3}$ description: 3 letter country code (ISO-3166-1 alpha3). latitude: type: number description: Latitude coordinate of the stop longitude: type: number description: Longitude coordinate of the stop zipcode: type: string description: Zipcode of the stop (first five digits) window_start: type: string format: naive date-time description: A datetime that represents the start of a time window for this stop (pickup or delivery). In local time. window_end: type: string format: naive date-time description: A datetime that represents the start of a time window for this stop (pickup or delivery). In local time. window_timezone: type: string description: A timezone identifier for the stop. requirements: type: array description: 'A list of requirements for the Stop, such as drop_trailer, etc. ' facility_info: type: object description: Detention rate and average waiting time on the facility properties: avg_time_spent: type: object description: Average waiting on facility properties: pickup: type: number description: Average waiting time in minutes for pickup delivery: type: number description: Average waiting time in minutes for delivery detention_rate: type: number description: Facility detention rate (0 to 100) requirements: type: object description: 'Requirements for the load ' properties: beer: type: boolean chemicals: type: boolean ctpat: type: boolean food_grade: type: boolean frozen: type: boolean hazmat: type: boolean hvhr: type: boolean pharmaceuticals: type: boolean produce: type: boolean teams: type: boolean tsa: type: boolean twic: type: boolean vented_vans: type: boolean ref_number: type: string description: Human readable Load reference number. required: - ref_number - equipment_type actions: type: object properties: redirect_url: type: string description: URL of offer on Loadsmart website. accept_url: type: string description: URL to accept the offer via API (must be a POST method). example: count: 2 next: null previous: null results: - id: ccd37107-ebe7-4a60-a20f-01d4e74355c8 price: 1234.56 relation: similar_lane load: equipment_type: DRV commodity: apples weight: 20000 dimensions: width: 8 height: 9 length: 54 distance: 50000 stops: - type: PU address: 101 Collins Avenue city: Miami Beach state: FL country: USA latitude: 41.203996 longitude: -96.115593 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false facility_info: avg_time_spent: pickup: 40 delivery: 180 detention_rate: 4 zipcode: '33139' window_start: 2020-02-13 09:00:00 window_end: 2018-02-13 11:00:00 window_timezone: America/New_York - type: DEL address: 2022 Collins Avenue city: Miami Beach state: FL country: USA latitude: 42.535793 longitude: -70.966568 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false facility_info: avg_time_spent: pickup: 20 delivery: 20 detention_rate: 0 window_start: 2018-02-14 16:00:00 window_end: 2018-02-14 18:00:00 window_timezone: America/New_York requirements: beer: false chemicals: false ctpat: false food_grade: false frozen: false hazmat: false hvhr: false pharmaceuticals: false produce: false teams: false tsa: false twic: false vented_vans: false ref_number: '425631' actions: redirect_url: https://loadsmart.com/loads/#/a440a0df-c3c2-4d70-9acd-7f03f4bc00f4 accept_url: https://api.loadsmart.com/api/v2/load-offers/offers/ccd37107-ebe7-4a60-a20f-01d4e74355c8/accept - id: e79acc24-cbfa-4cc7-92ca-7001279cf064 price: 1234.56 relation: similar_pickup load: equipment_type: DRV commodity: apples weight: 20000 dimensions: width: null height: null length: null distance: 50000 stops: - type: PU address: 101 Collins Avenue city: Miami Beach state: FL country: USA latitude: 41.203996 longitude: -96.115593 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false zipcode: '33139' window_start: 2020-02-13 09:00:00 window_end: 2018-02-13 11:00:00 window_timezone: America/New_York - type: DEL address: 2022 Collins Avenue city: Miami Beach state: FL country: USA latitude: 42.535793 longitude: -70.966568 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false window_start: 2018-02-14 16:00:00 window_end: 2018-02-14 18:00:00 window_timezone: America/New_York requirements: beer: false chemicals: false ctpat: false food_grade: false frozen: false hazmat: false hvhr: false pharmaceuticals: false produce: false teams: false tsa: false twic: false vented_vans: false ref_number: '425821' actions: redirect_url: https://loadsmart.com/loads/#/eec5677f-883c-4696-b13b-7539fa98e098 accept_url: https://api.loadsmart.com/api/v2/load-offers/offers/e79acc24-cbfa-4cc7-92ca-7001279cf064/accept '400': description: Invalid parameters content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description /api/v2/load-offers/loads/: get: summary: List loads tags: - Load Offers security: - Application-JWT: - load_offers_read description: List accepted loads responses: '200': description: Success content: application/json: schema: type: object properties: count: description: Number of objects found type: number format: integer next: description: URL for next page of results type: string format: url previous: description: URL for previous page of results type: string format: url results: type: array items: allOf: - type: object properties: id: type: string description: Load unique identifier (UUID) active_offer: type: object description: Offer associated to the load properties: id: type: string description: Offer unique identifier (UUID) price: type: number format: float description: Offer price (USD) carrier: type: object description: Carrier assigned to the load properties: id: description: Carrier id type: string format: uuid dot: description: Carrier DOT number type: string format: integer mc: description: Carrier MC number type: string format: integer - type: object properties: equipment_type: type: string enum: - DRV - FBE - RFR - CON - CUR - DDP - IMC - SDK - STK - LTL - BLK - TNK - OTH description: The type of truck used to transport the load. Allowed values are DRV (dry van), FBE (flatbed), RFR (reefer), CON (conestoga), CUR (curtainside), DDP (double drop), IMC (intermodal), SDK (step deck), STK (straight truck), LTL (less than truckload), BLK (bulk), TNK (tanker) and OTH for others. commodity: type: string maxLength: 255 description: Name or description of the commodity that is being shipped. weight: type: number minimum: 1 description: Weight of the cargo in pounds (lbs). dimensions: type: object description: 'Dimensions of the cargo in feet (ft). A `null` dimension means that the information is unavailable. ' properties: weight: type: number nullable: true height: type: number nullable: true width: type: number nullable: true distance: type: number minimum: 1 description: Total distance of the shipment, in miles. This counts all stops. stops: type: array items: type: object properties: type: type: string enum: - PU - DEL description: Type of the stop. Pickup (PU) or Delivery (DEL). address: type: string city: type: string state: type: string pattern: ^[A-Z0-9]{1,3}$ description: 'Up to 3-alphanumeric characters representing state or equivalent administrative boundary, from the second part of ISO 3166-2 code definition. For example, Florida is FL, since its ISO 3166-2 is US-FL. ' country: type: string pattern: ^[A-Z]{3}$ description: 3 letter country code (ISO-3166-1 alpha3). latitude: type: number description: Latitude coordinate of the stop longitude: type: number description: Longitude coordinate of the stop zipcode: type: string description: Zipcode of the stop (first five digits) window_start: type: string format: naive date-time description: A datetime that represents the start of a time window for this stop (pickup or delivery). In local time. window_end: type: string format: naive date-time description: A datetime that represents the start of a time window for this stop (pickup or delivery). In local time. window_timezone: type: string description: A timezone identifier for the stop. requirements: type: array description: 'A list of requirements for the Stop, such as drop_trailer, etc. ' facility_info: type: object description: Detention rate and average waiting time on the facility properties: avg_time_spent: type: object description: Average waiting on facility properties: pickup: type: number description: Average waiting time in minutes for pickup delivery: type: number description: Average waiting time in minutes for delivery detention_rate: type: number description: Facility detention rate (0 to 100) requirements: type: object description: 'Requirements for the load ' properties: beer: type: boolean chemicals: type: boolean ctpat: type: boolean food_grade: type: boolean frozen: type: boolean hazmat: type: boolean hvhr: type: boolean pharmaceuticals: type: boolean produce: type: boolean teams: type: boolean tsa: type: boolean twic: type: boolean vented_vans: type: boolean ref_number: type: string description: Human readable Load reference number. required: - ref_number - equipment_type '400': description: Invalid parameters content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description '404': description: Load not found content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description example: error: object_not_found error_description: Object not found /api/v2/load-offers/loads/{load_id}: get: summary: Retrieve a load tags: - Load Offers security: - Application-JWT: - load_offers_read description: Retrieve an accepted load parameters: - in: path name: load_id required: true schema: description: Load UUID type: string format: uuid responses: '200': description: Success content: application/json: schema: allOf: - type: object properties: id: type: string description: Load unique identifier (UUID) active_offer: type: object description: Offer associated to the load properties: id: type: string description: Offer unique identifier (UUID) price: type: number format: float description: Offer price (USD) carrier: type: object description: Carrier assigned to the load properties: id: description: Carrier id type: string format: uuid dot: description: Carrier DOT number type: string format: integer mc: description: Carrier MC number type: string format: integer - type: object properties: equipment_type: type: string enum: - DRV - FBE - RFR - CON - CUR - DDP - IMC - SDK - STK - LTL - BLK - TNK - OTH description: The type of truck used to transport the load. Allowed values are DRV (dry van), FBE (flatbed), RFR (reefer), CON (conestoga), CUR (curtainside), DDP (double drop), IMC (intermodal), SDK (step deck), STK (straight truck), LTL (less than truckload), BLK (bulk), TNK (tanker) and OTH for others. commodity: type: string maxLength: 255 description: Name or description of the commodity that is being shipped. weight: type: number minimum: 1 description: Weight of the cargo in pounds (lbs). dimensions: type: object description: 'Dimensions of the cargo in feet (ft). A `null` dimension means that the information is unavailable. ' properties: weight: type: number nullable: true height: type: number nullable: true width: type: number nullable: true distance: type: number minimum: 1 description: Total distance of the shipment, in miles. This counts all stops. stops: type: array items: type: object properties: type: type: string enum: - PU - DEL description: Type of the stop. Pickup (PU) or Delivery (DEL). address: type: string city: type: string state: type: string pattern: ^[A-Z0-9]{1,3}$ description: 'Up to 3-alphanumeric characters representing state or equivalent administrative boundary, from the second part of ISO 3166-2 code definition. For example, Florida is FL, since its ISO 3166-2 is US-FL. ' country: type: string pattern: ^[A-Z]{3}$ description: 3 letter country code (ISO-3166-1 alpha3). latitude: type: number description: Latitude coordinate of the stop longitude: type: number description: Longitude coordinate of the stop zipcode: type: string description: Zipcode of the stop (first five digits) window_start: type: string format: naive date-time description: A datetime that represents the start of a time window for this stop (pickup or delivery). In local time. window_end: type: string format: naive date-time description: A datetime that represents the start of a time window for this stop (pickup or delivery). In local time. window_timezone: type: string description: A timezone identifier for the stop. requirements: type: array description: 'A list of requirements for the Stop, such as drop_trailer, etc. ' facility_info: type: object description: Detention rate and average waiting time on the facility properties: avg_time_spent: type: object description: Average waiting on facility properties: pickup: type: number description: Average waiting time in minutes for pickup delivery: type: number description: Average waiting time in minutes for delivery detention_rate: type: number description: Facility detention rate (0 to 100) requirements: type: object description: 'Requirements for the load ' properties: beer: type: boolean chemicals: type: boolean ctpat: type: boolean food_grade: type: boolean frozen: type: boolean hazmat: type: boolean hvhr: type: boolean pharmaceuticals: type: boolean produce: type: boolean teams: type: boolean tsa: type: boolean twic: type: boolean vented_vans: type: boolean ref_number: type: string description: Human readable Load reference number. required: - ref_number - equipment_type example: id: 2ed37107-ebe7-4a60-a20f-01d4e74355c8 equipment_type: DRV commodity: apples weight: 20000 dimensions: width: 8 height: 9 length: 54 distance: 50000 stops: - type: PU address: 101 Collins Avenue city: Miami Beach state: FL country: USA latitude: 41.203996 longitude: -96.115593 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false facility_info: avg_time_spent: pickup: 40 delivery: 180 detention_rate: 4 zipcode: '33139' window_start: 2020-02-13 09:00:00 window_end: 2018-02-13 11:00:00 window_timezone: America/New_York - type: DEL address: 2022 Collins Avenue city: Miami Beach state: FL country: USA latitude: 42.535793 longitude: -70.966568 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false facility_info: avg_time_spent: pickup: 20 delivery: 20 detention_rate: 0 window_start: 2018-02-14 16:00:00 window_end: 2018-02-14 18:00:00 window_timezone: America/New_York requirements: beer: false chemicals: false ctpat: false food_grade: false frozen: false hazmat: false hvhr: false pharmaceuticals: false produce: false teams: false tsa: false twic: false vented_vans: false active_offer: id: ccd37107-ebe7-4a60-a20f-01d4e74355c8 price: 1234.56 carrier: id: 89ef54c7-52d5-44a0-b94d-df41eb1aab15 mc: 123456 dot: 987654 ref_number: '425631' '404': description: Load not found content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description example: error: object_not_found error_description: Object not found delete: summary: Drop a load tags: - Load Offers security: - User-JWT: - load_offers_write description: Drop a load parameters: - in: path name: load_id required: true schema: description: Load UUID type: string format: uuid requestBody: required: true content: application/json: schema: type: object properties: reason: description: Reason for dropping the load type: string required: - reason responses: '204': description: Success '400': description: Invalid parameters content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description '404': description: Load not found content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description example: error: object_not_found error_description: Object not found '500': description: Internal error content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description /api/v2/load-offers/loads/{load_id}/rate_confirmation: get: summary: Download ratecon tags: - Load Offers security: - User-JWT: - load_offers_read description: Download rate confirmation PDF file parameters: - in: path name: load_id required: true schema: description: Load UUID type: string format: uuid responses: '200': description: The Rate Confirmation file was generated and downloaded content: application/pdf: schema: type: string format: binary '403': description: Invalid token type. content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description example: error: forbiden_access error_description: An user is trying to access a not authorized resource. '404': description: Load not found content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description example: error: object_not_found error_description: Object not found /api/v2/load-offers/loads/{load_id}/related-offers: get: summary: Search related offers tags: - Load Offers security: - Application-JWT: - load_offers_read description: 'Search related offers of a Load ' parameters: - in: path name: load_id required: true schema: description: Load UUID type: string format: uuid - in: query name: relation required: false schema: description: 'Relation type with the Offer. Possible values `backhaul`, `similar_lane`, `similar_pickup`, `similar_delivery` or `from_delivery` ' type: string responses: '200': description: Success content: application/json: schema: type: object properties: count: description: Number of objects found type: number format: integer next: description: URL for next page of results type: string format: url previous: description: URL for previous page of results type: string format: url results: type: array items: type: object properties: id: type: string description: Offer unique identifier (UUID) price: type: number description: Offer price (USD) relation: type: string description: 'Relation type with the Offer. Possible values `backhaul`, `similar_lane`, `similar_pickup`, `similar_delivery` or `from_delivery` ' load: type: object properties: equipment_type: type: string enum: - DRV - FBE - RFR - CON - CUR - DDP - IMC - SDK - STK - LTL - BLK - TNK - OTH description: The type of truck used to transport the load. Allowed values are DRV (dry van), FBE (flatbed), RFR (reefer), CON (conestoga), CUR (curtainside), DDP (double drop), IMC (intermodal), SDK (step deck), STK (straight truck), LTL (less than truckload), BLK (bulk), TNK (tanker) and OTH for others. commodity: type: string maxLength: 255 description: Name or description of the commodity that is being shipped. weight: type: number minimum: 1 description: Weight of the cargo in pounds (lbs). dimensions: type: object description: 'Dimensions of the cargo in feet (ft). A `null` dimension means that the information is unavailable. ' properties: weight: type: number nullable: true height: type: number nullable: true width: type: number nullable: true distance: type: number minimum: 1 description: Total distance of the shipment, in miles. This counts all stops. stops: type: array items: type: object properties: type: type: string enum: - PU - DEL description: Type of the stop. Pickup (PU) or Delivery (DEL). address: type: string city: type: string state: type: string pattern: ^[A-Z0-9]{1,3}$ description: 'Up to 3-alphanumeric characters representing state or equivalent administrative boundary, from the second part of ISO 3166-2 code definition. For example, Florida is FL, since its ISO 3166-2 is US-FL. ' country: type: string pattern: ^[A-Z]{3}$ description: 3 letter country code (ISO-3166-1 alpha3). latitude: type: number description: Latitude coordinate of the stop longitude: type: number description: Longitude coordinate of the stop zipcode: type: string description: Zipcode of the stop (first five digits) window_start: type: string format: naive date-time description: A datetime that represents the start of a time window for this stop (pickup or delivery). In local time. window_end: type: string format: naive date-time description: A datetime that represents the start of a time window for this stop (pickup or delivery). In local time. window_timezone: type: string description: A timezone identifier for the stop. requirements: type: array description: 'A list of requirements for the Stop, such as drop_trailer, etc. ' facility_info: type: object description: Detention rate and average waiting time on the facility properties: avg_time_spent: type: object description: Average waiting on facility properties: pickup: type: number description: Average waiting time in minutes for pickup delivery: type: number description: Average waiting time in minutes for delivery detention_rate: type: number description: Facility detention rate (0 to 100) requirements: type: object description: 'Requirements for the load ' properties: beer: type: boolean chemicals: type: boolean ctpat: type: boolean food_grade: type: boolean frozen: type: boolean hazmat: type: boolean hvhr: type: boolean pharmaceuticals: type: boolean produce: type: boolean teams: type: boolean tsa: type: boolean twic: type: boolean vented_vans: type: boolean ref_number: type: string description: Human readable Load reference number. required: - ref_number - equipment_type actions: type: object properties: redirect_url: type: string description: URL of offer on Loadsmart website. accept_url: type: string description: URL to accept the offer via API (must be a POST method). example: count: 2 next: null previous: null results: - id: ccd37107-ebe7-4a60-a20f-01d4e74355c8 price: 1234.56 relation: similar_lane load: equipment_type: DRV commodity: apples weight: 20000 dimensions: width: 8 height: 9 length: 54 distance: 50000 stops: - type: PU address: 101 Collins Avenue city: Miami Beach state: FL country: USA latitude: 41.203996 longitude: -96.115593 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false facility_info: avg_time_spent: pickup: 40 delivery: 180 detention_rate: 4 zipcode: '33139' window_start: 2020-02-13 09:00:00 window_end: 2018-02-13 11:00:00 window_timezone: America/New_York - type: DEL address: 2022 Collins Avenue city: Miami Beach state: FL country: USA latitude: 42.535793 longitude: -70.966568 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false facility_info: avg_time_spent: pickup: 20 delivery: 20 detention_rate: 0 window_start: 2018-02-14 16:00:00 window_end: 2018-02-14 18:00:00 window_timezone: America/New_York requirements: beer: false chemicals: false ctpat: false food_grade: false frozen: false hazmat: false hvhr: false pharmaceuticals: false produce: false teams: false tsa: false twic: false vented_vans: false ref_number: '425631' actions: redirect_url: https://loadsmart.com/loads/#/a440a0df-c3c2-4d70-9acd-7f03f4bc00f4 accept_url: https://api.loadsmart.com/api/v2/load-offers/offers/ccd37107-ebe7-4a60-a20f-01d4e74355c8/accept - id: e79acc24-cbfa-4cc7-92ca-7001279cf064 price: 1234.56 relation: similar_pickup load: equipment_type: DRV commodity: apples weight: 20000 dimensions: width: null height: null length: null distance: 50000 stops: - type: PU address: 101 Collins Avenue city: Miami Beach state: FL country: USA latitude: 41.203996 longitude: -96.115593 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false zipcode: '33139' window_start: 2020-02-13 09:00:00 window_end: 2018-02-13 11:00:00 window_timezone: America/New_York - type: DEL address: 2022 Collins Avenue city: Miami Beach state: FL country: USA latitude: 42.535793 longitude: -70.966568 requirements: blind_bol: false drop_trailer: false heavy_scale_ticket: false light_scale_ticket: false window_start: 2018-02-14 16:00:00 window_end: 2018-02-14 18:00:00 window_timezone: America/New_York requirements: beer: false chemicals: false ctpat: false food_grade: false frozen: false hazmat: false hvhr: false pharmaceuticals: false produce: false teams: false tsa: false twic: false vented_vans: false ref_number: '425821' actions: redirect_url: https://loadsmart.com/loads/#/eec5677f-883c-4696-b13b-7539fa98e098 accept_url: https://api.loadsmart.com/api/v2/load-offers/offers/e79acc24-cbfa-4cc7-92ca-7001279cf064/accept '400': description: Invalid parameters content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description /api/v2/load-offers/webhooks: get: summary: List webhooks tags: - Load Offers security: - Application-JWT: - load_offers_read description: 'List configured webhooks ' responses: '200': description: Success content: application/json: schema: type: object properties: count: description: Number of objects found type: number format: integer next: description: URL for next page of results type: string format: url previous: description: URL for previous page of results type: string format: url results: type: array items: allOf: - type: object properties: id: description: Webhook unique identifier (UUID) type: string - type: object properties: url: description: URL to be called when proper event happens type: string event: description: Action that will trigger the endpoint type: string enum: - load_cancelled - load_carrier_bounced - offer_created - offer_removed required: - url - event example: count: 2 next: null previous: null results: - uuid: d630d8fe-9859-453f-aed2-372a1b09345c url: https://www.example.com/my/awsome/webhook_1 event: load_cancelled - uuid: 8f62fea9-1edb-4f31-b2e5-dcf184b5a22b url: https://www.example.com/my/awsome/webhook_2 event: load_carrier_bounced - uuid: bac6dabc-c324-40bc-91f6-ed772d72632f url: https://www.example.com/my/awsome/webhook_3 event: offer_created - uuid: f2d51c14-4750-42cf-8c7a-a68c0d7b8d11 url: https://www.example.com/my/awsome/webhook_3 event: offer_removed post: summary: Register webhooks tags: - Load Offers security: - Application-JWT: - load_offers_write description: 'Create webhooks configuration ' requestBody: required: true content: application/json: schema: type: object properties: url: description: URL to be called when proper event happens type: string event: description: Action that will trigger the endpoint type: string enum: - load_cancelled - load_carrier_bounced - offer_created - offer_removed required: - url - event responses: '201': description: Success content: application/json: schema: allOf: - type: object properties: id: description: Webhook unique identifier (UUID) type: string - type: object properties: url: description: URL to be called when proper event happens type: string event: description: Action that will trigger the endpoint type: string enum: - load_cancelled - load_carrier_bounced - offer_created - offer_removed required: - url - event example: uuid: d630d8fe-9859-453f-aed2-372a1b09345c url: https://www.example.com/my/awsome/webhook_1 event: load_carrier_bounced '400': description: Invalid parameters content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description /api/v2/load-offers/webhooks/{uuid}: get: summary: Retrieve webhook tags: - Load Offers security: - Application-JWT: - load_offers_read description: 'Retrieve webhook configuration ' parameters: - in: path name: uuid schema: description: Webhook unique identifier (UUID) type: string format: uuid required: true responses: '200': description: Success content: application/json: schema: allOf: - type: object properties: id: description: Webhook unique identifier (UUID) type: string - type: object properties: url: description: URL to be called when proper event happens type: string event: description: Action that will trigger the endpoint type: string enum: - load_cancelled - load_carrier_bounced - offer_created - offer_removed required: - url - event example: uuid: d630d8fe-9859-453f-aed2-372a1b09345c url: https://www.example.com/my/awsome/webhook_1 event: load_carrier_bounced '404': description: Webhook configuration not found content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description example: error: object_not_found error_description: Object not found put: summary: Update webhook tags: - Load Offers security: - Application-JWT: - load_offers_write description: 'Update webhook configuration ' parameters: - in: path name: uuid schema: description: Webhook unique identifier (UUID) type: string format: uuid required: true requestBody: required: true content: application/json: schema: type: object properties: url: description: URL to be called when proper event happens type: string event: description: Action that will trigger the endpoint type: string enum: - load_cancelled - load_carrier_bounced - offer_created - offer_removed required: - url - event responses: '200': description: Success content: application/json: schema: allOf: - type: object properties: id: description: Webhook unique identifier (UUID) type: string - type: object properties: url: description: URL to be called when proper event happens type: string event: description: Action that will trigger the endpoint type: string enum: - load_cancelled - load_carrier_bounced - offer_created - offer_removed required: - url - event example: uuid: d630d8fe-9859-453f-aed2-372a1b09345c url: https://www.example.com/my/awsome/webhook_1 event: load_carrier_bounced '400': description: Invalid parameters content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description '404': description: Webhook configuration not found content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description example: error: object_not_found error_description: Object not found delete: summary: Delete webhook tags: - Load Offers security: - Application-JWT: - load_offers_write description: 'Delete webhook configuration ' parameters: - in: path name: uuid schema: description: Webhook unique identifier (UUID) type: string format: uuid required: true responses: '204': description: No Content '404': description: Webhook configuration not found content: application/json: schema: type: object properties: error: type: string enum: - invalid_data error_description: type: string description: Description of what happened errors: type: object description: Object where each field is a key and the value is an array of errors required: - error - error_description example: error: object_not_found error_description: Object not found components: securitySchemes: bearer: scheme: bearer bearerFormat: JWT type: http