{
  "openapi": "3.0.0",
  "info": {
    "title": "FM Integration API v2",
    "description": "Loadlink FM Integration API — v2\n\nPost loads/equipment, search reference data, and retrieve leads.\n\n**New here?** [Check your access →](/access)\n\nAll endpoints require a bearer token — call `POST /v2/authorize` with your\norganization's integration email and org token to get one. Your Salesforce account\nadmin provisions the org token; it is shared across every sub-account in your\norganization.\n\n**Errors**: 400 responses follow RFC 9457 (`ProblemDetails`) with a structured\n`errors[]` array of `{name, reason}` pairs. 401 responses have no body.\n429 (rate limit exceeded) includes `X-RateLimit-*` headers and `Retry-After`.\n\n**Idempotency**: `POST /v2/postings/loads` and `POST /v2/postings/equipment`\naccept an optional `Idempotency-Key` header (client-generated UUID v4) to safely\nretry without creating duplicates. DELETE endpoints do not support this header.\n\n**Example payloads**: every operation below has a sample request/response for\nillustration only — cities, tokens, rates, etc. are made up. Substitute your own\nvalid values both in \"Try it\" and in real integration code; nothing about the\nexample values themselves is required or enforced.",
    "version": "v2"
  },
  "servers": [
    {
      "url": "https://azdevgateway.loadlink.ca/freight-matching",
      "description": "Dev"
    }
  ],
  "paths": {
    "/v2/reference/vehicle-types": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "Get all vehicle types",
        "operationId": "GetVehicleTypes",
        "responses": {
          "200": {
            "description": "Vehicle types",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VehicleTypeResponse"
                  }
                },
                "example": [
                  {
                    "id": 1,
                    "vehicleTypeId": 1,
                    "detail": "Van",
                    "value": 1,
                    "code": "V"
                  },
                  {
                    "id": 2,
                    "vehicleTypeId": 2,
                    "detail": "Reefer",
                    "value": 2,
                    "code": "R"
                  }
                ]
              }
            }
          },
          "204": {
            "description": "No types found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "OrgTokenBearer": []
          }
        ]
      }
    },
    "/v2/reference/vehicle-sizes": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "Get vehicle sizes by posting type",
        "operationId": "GetVehicleSizes",
        "parameters": [
          {
            "name": "PostingType",
            "in": "query",
            "required": true,
            "description": "\"E\" for Equipment or \"L\" for Load. Load postings exclude the \"Both\" (TL/LTL) size.",
            "schema": {
              "type": "string"
            },
            "example": "L"
          }
        ],
        "responses": {
          "200": {
            "description": "Vehicle sizes",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VehicleSizeResponse"
                  }
                },
                "example": [
                  {
                    "id": 1,
                    "detail": "Truckload",
                    "code": "T",
                    "postingType": "L",
                    "value": 1
                  },
                  {
                    "id": 2,
                    "detail": "Less than Truckload",
                    "code": "L",
                    "postingType": "L",
                    "value": 2
                  }
                ]
              }
            }
          },
          "204": {
            "description": "No sizes found"
          },
          "400": {
            "description": "Invalid posting type",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "instance": "/v2/reference/vehicle-sizes",
                  "traceId": "0HN7F8G2K3L4M:00000001",
                  "detail": null,
                  "errors": [
                    {
                      "name": "postingType",
                      "reason": "PostingType must be 'E' (Equipment) or 'L' (Load).",
                      "code": null,
                      "severity": null
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "OrgTokenBearer": []
          }
        ]
      }
    },
    "/v2/reference/vehicle-attributes": {
      "get": {
        "tags": [
          "Reference"
        ],
        "summary": "Get all vehicle attributes",
        "operationId": "GetVehicleAttributes",
        "responses": {
          "200": {
            "description": "Vehicle attributes",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/VehicleAttributeResponse"
                  }
                },
                "example": [
                  {
                    "id": 1,
                    "detail": "Air Ride",
                    "value": 1,
                    "code": "A"
                  },
                  {
                    "id": 2,
                    "detail": "Hazmat",
                    "value": 2,
                    "code": "Z"
                  }
                ]
              }
            }
          },
          "204": {
            "description": "No attributes found"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "OrgTokenBearer": []
          }
        ]
      }
    },
    "/v2/postings/loads/{token}": {
      "delete": {
        "tags": [
          "LoadPostings"
        ],
        "summary": "Delete a load posting by token",
        "operationId": "DeleteLoadPosting",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "description": "The posting's Token, as returned from POST /v2/postings/loads or GET /v2/postings/loads.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 123456
          }
        ],
        "requestBody": {
          "x-name": "DeleteLoadPostingRequest",
          "description": "",
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/DeleteLoadPostingRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteLoadPostingRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "204": {
            "description": "Posting deleted"
          },
          "400": {
            "description": "Invalid token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "instance": "/v2/postings/loads/123456",
                  "traceId": "0HN7F8G2K3L4M:00000001",
                  "detail": null,
                  "errors": [
                    {
                      "name": "token",
                      "reason": "Invalid load token.",
                      "code": null,
                      "severity": null
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "OrgTokenBearer": []
          }
        ]
      }
    },
    "/v2/postings/loads": {
      "get": {
        "tags": [
          "LoadPostings"
        ],
        "summary": "List load postings for a customer",
        "operationId": "GetLoadPostings",
        "responses": {
          "200": {
            "description": "Load postings for the customer",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LoadPostingResponse"
                  }
                },
                "example": [
                  {
                    "token": 123456,
                    "dateAvail": "2026-07-20T08:00:00Z",
                    "srceCity": "Brampton",
                    "srceSt": "ON",
                    "srceLong": -79.759,
                    "srceLat": 43.684,
                    "srceRadius": 200,
                    "destCity": "Surrey",
                    "destSt": "BC",
                    "destLong": -122.8235,
                    "destLat": 49.1046,
                    "destRadius": 200,
                    "vehicleSize": "T",
                    "vehicleType": "VR",
                    "comment": "No tarps",
                    "postingAttrib": "AZ",
                    "createdOn": "2026-07-15T10:30:00Z",
                    "pStatus": "O",
                    "initialLeadCount": 3,
                    "length": 53,
                    "weight": 45000,
                    "rate": 2.15,
                    "currency": 0,
                    "email": "dispatch@example.com",
                    "custCD": "ABC123",
                    "postMode": "A"
                  }
                ]
              }
            }
          },
          "204": {
            "description": "No postings found"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "OrgTokenBearer": []
          }
        ]
      },
      "post": {
        "tags": [
          "LoadPostings"
        ],
        "summary": "Create a load posting",
        "description": "**Idempotency-Key** *(optional header)*: Supply a client-generated UUID v4 to enable safe retries. On a cache hit the server replays the original 201 response without writing a duplicate posting. The key is scoped to your account and expires after 24 hours.",
        "operationId": "CreateLoadPosting",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Client-generated UUID v4 for safe retries. Re-sending the same key within 24h replays the original 201 without creating a duplicate posting.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "x-name": "PostLoadPostingRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostLoadPostingRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "201": {
            "description": "Posting created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePostingResponse"
                },
                "example": {
                  "token": 123456,
                  "message": "Load posting created successfully",
                  "createdAt": "2026-07-15T10:30:00Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or city not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "instance": "/v2/postings/loads",
                  "traceId": "0HN7F8G2K3L4M:00000001",
                  "detail": null,
                  "errors": [
                    {
                      "name": "srceCity",
                      "reason": "Source city and state not found.",
                      "code": null,
                      "severity": null
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid bearer token"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "OrgTokenBearer": []
          }
        ]
      }
    },
    "/v2/leads/loads/{token}": {
      "get": {
        "tags": [
          "Leads"
        ],
        "summary": "Get load leads by posting token",
        "operationId": "GetLoadLeads",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "description": "The load posting's Token, as returned from POST /v2/postings/loads or GET /v2/postings/loads.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 123456
          }
        ],
        "responses": {
          "200": {
            "description": "Leads for the load posting",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/LoadLeadResponse"
                  }
                },
                "example": [
                  {
                    "loadToken": 123456,
                    "dateAvail": "2026-07-20T08:00:00Z",
                    "srceCountry": "CA",
                    "srceCity": "Brampton",
                    "srceSt": "ON",
                    "srceLong": -79.759,
                    "srceLat": 43.684,
                    "destCountry": "CA",
                    "destCity": "Surrey",
                    "destSt": "BC",
                    "destLong": -122.8235,
                    "destLat": 49.1046,
                    "vehicleSize": "T",
                    "vehicleType": "VR",
                    "comment": "No tarps",
                    "dfo": 12.4,
                    "dfd": 8,
                    "dirO": "N",
                    "postingAttrib": "AZ",
                    "createdOn": "2026-07-15T11:00:00Z",
                    "equipmentToken": 654321,
                    "subscriberType": "Carrier",
                    "length": 53,
                    "weight": 45000,
                    "rate": 2.15,
                    "currency": 0,
                    "company": {
                      "name": "Acme Trucking",
                      "email": "dispatch@acmetrucking.com",
                      "phone": "555-0100",
                      "dba": "Acme",
                      "extension": null,
                      "preferredEmail": null,
                      "hoursOfOperation": null,
                      "durationWithLoadlink": null,
                      "customerName": "Acme Trucking Inc.",
                      "mcIccNumber": 123456,
                      "dotNumber": 7654321,
                      "ontarioCvor": null,
                      "pqNir": null,
                      "nscNumber": null,
                      "address": {
                        "street": "100 Industrial Pkwy",
                        "city": "Sarnia",
                        "province": "ON",
                        "postalCode": "N7T 1A1"
                      }
                    }
                  }
                ]
              }
            }
          },
          "204": {
            "description": "No leads found"
          },
          "400": {
            "description": "Invalid token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "instance": "/v2/leads/loads/123456",
                  "traceId": "0HN7F8G2K3L4M:00000001",
                  "detail": null,
                  "errors": [
                    {
                      "name": "token",
                      "reason": "Invalid load token.",
                      "code": null,
                      "severity": null
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "OrgTokenBearer": []
          }
        ]
      }
    },
    "/v2/postings/equipment/{token}": {
      "delete": {
        "tags": [
          "EquipmentPostings"
        ],
        "summary": "Delete an equipment posting by token",
        "operationId": "DeleteEquipmentPosting",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "description": "The posting's Token, as returned from POST /v2/postings/equipment or GET /v2/postings/equipment.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 654321
          }
        ],
        "requestBody": {
          "x-name": "DeleteEquipmentPostingRequest",
          "description": "",
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/DeleteEquipmentPostingRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteEquipmentPostingRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "204": {
            "description": "Posting deleted"
          },
          "400": {
            "description": "Invalid token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "instance": "/v2/postings/equipment/654321",
                  "traceId": "0HN7F8G2K3L4M:00000001",
                  "detail": null,
                  "errors": [
                    {
                      "name": "token",
                      "reason": "Invalid equipment token.",
                      "code": null,
                      "severity": null
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "OrgTokenBearer": []
          }
        ]
      }
    },
    "/v2/postings/equipment": {
      "get": {
        "tags": [
          "EquipmentPostings"
        ],
        "summary": "List equipment postings for a customer",
        "operationId": "GetEquipmentPostings",
        "responses": {
          "200": {
            "description": "Equipment postings for the customer",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EquipmentPostingResponse"
                  }
                },
                "example": [
                  {
                    "token": 654321,
                    "dateAvail": "2026-07-20T08:00:00Z",
                    "srceCity": "Sarnia",
                    "srceSt": "ON",
                    "srceLong": -82.4065,
                    "srceLat": 42.9746,
                    "srceRadius": 200,
                    "destCity": "Brampton",
                    "destSt": "ON",
                    "destLong": -79.759,
                    "destLat": 43.684,
                    "destRadius": 200,
                    "vehicleSize": "T",
                    "vehicleType": "VR",
                    "comment": "Reefer unit available",
                    "postingAttrib": "AZ",
                    "createdOn": "2026-07-15T09:15:00Z",
                    "pStatus": "O",
                    "corridor": "C",
                    "initialLeadCount": 5,
                    "length": 53,
                    "weight": 45000,
                    "rate": 2.1,
                    "currency": 0,
                    "email": "dispatch@example.com",
                    "custCD": "XYZ789",
                    "postMode": "A"
                  }
                ]
              }
            }
          },
          "204": {
            "description": "No postings found"
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "OrgTokenBearer": []
          }
        ]
      },
      "post": {
        "tags": [
          "EquipmentPostings"
        ],
        "summary": "Create an equipment posting",
        "description": "**Idempotency-Key** *(optional header)*: Supply a client-generated UUID v4 to enable safe retries. On a cache hit the server replays the original 201 response without writing a duplicate posting. The key is scoped to your account and expires after 24 hours.",
        "operationId": "CreateEquipmentPosting",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Client-generated UUID v4 for safe retries. Re-sending the same key within 24h replays the original 201 without creating a duplicate posting.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "x-name": "PostEquipmentPostingRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PostEquipmentPostingRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "201": {
            "description": "Posting created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePostingResponse"
                },
                "example": {
                  "token": 654321,
                  "message": "Equipment posting created successfully",
                  "createdAt": "2026-07-15T09:15:00Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request or city not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "instance": "/v2/postings/equipment",
                  "traceId": "0HN7F8G2K3L4M:00000001",
                  "detail": null,
                  "errors": [
                    {
                      "name": "srceCity",
                      "reason": "Source city and state not found.",
                      "code": null,
                      "severity": null
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid bearer token"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "OrgTokenBearer": []
          }
        ]
      }
    },
    "/v2/leads/equipment/{token}": {
      "get": {
        "tags": [
          "Leads"
        ],
        "summary": "Get equipment leads by posting token",
        "operationId": "GetEquipmentLeads",
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "description": "The equipment posting's Token, as returned from POST /v2/postings/equipment or GET /v2/postings/equipment.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "example": 654321
          }
        ],
        "responses": {
          "200": {
            "description": "Leads for the equipment posting",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EquipmentLeadResponse"
                  }
                },
                "example": [
                  {
                    "equipmentToken": 654321,
                    "dateAvail": "2026-07-20T08:00:00Z",
                    "srceCountry": "CA",
                    "srceCity": "Sarnia",
                    "srceSt": "ON",
                    "srceLong": -82.4065,
                    "srceLat": 42.9746,
                    "destCountry": "CA",
                    "destCity": "Brampton",
                    "destSt": "ON",
                    "destLong": -79.759,
                    "destLat": 43.684,
                    "vehicleSize": "T",
                    "vehicleType": "VR",
                    "comment": "No tarps",
                    "dfo": 8.1,
                    "dfd": 12,
                    "dirO": "S",
                    "postingAttrib": "AZ",
                    "distance": 210.5,
                    "createdOn": "2026-07-15T10:30:00Z",
                    "loadToken": 123456,
                    "subscriberType": "Broker",
                    "length": 53,
                    "weight": 45000,
                    "rate": 2.15,
                    "currency": 0,
                    "company": {
                      "name": "Northline Logistics",
                      "email": "ops@northline.com",
                      "phone": "555-0177",
                      "dba": null,
                      "extension": null,
                      "preferredEmail": null,
                      "hoursOfOperation": null,
                      "durationWithLoadlink": null,
                      "customerName": "Northline Logistics Ltd.",
                      "mcIccNumber": 234567,
                      "dotNumber": 8765432,
                      "ontarioCvor": null,
                      "pqNir": null,
                      "nscNumber": null,
                      "address": {
                        "street": "50 Freight Rd",
                        "city": "Brampton",
                        "province": "ON",
                        "postalCode": "L6T 2H4"
                      }
                    }
                  }
                ]
              }
            }
          },
          "204": {
            "description": "No leads found"
          },
          "400": {
            "description": "Invalid token",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                },
                "example": {
                  "type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
                  "title": "Bad Request",
                  "status": 400,
                  "instance": "/v2/leads/equipment/654321",
                  "traceId": "0HN7F8G2K3L4M:00000001",
                  "detail": null,
                  "errors": [
                    {
                      "name": "token",
                      "reason": "Invalid equipment token.",
                      "code": null,
                      "severity": null
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "OrgTokenBearer": []
          }
        ]
      }
    },
    "/v2/authorize": {
      "post": {
        "tags": [
          "Authorize"
        ],
        "summary": "Exchange an org token for a bearer",
        "description": "Resolves the given email against your organization, validates the org-level integration token, and — if your organization has the Integration API feature provisioned — returns a bearer token to use as `Authorization: Bearer <token>` on every other endpoint. Tokens expire after 5 minutes; call this endpoint again to get a new one.",
        "operationId": "Authorize",
        "requestBody": {
          "x-name": "AuthorizeRequest",
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthorizeRequest"
              }
            }
          },
          "required": true,
          "x-position": 1
        },
        "responses": {
          "200": {
            "description": "Bearer issued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthorizeResponse"
                },
                "example": {
                  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
                  "tokenType": "Bearer",
                  "expiresIn": 300
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Org token does not match"
          },
          "403": {
            "description": "Account does not have the Integration API feature provisioned"
          },
          "404": {
            "description": "No user for that email, no account, or no org token provisioned yet"
          },
          "503": {
            "description": "Identity is temporarily unreachable — retry shortly"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "VehicleTypeResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unique row identifier for this vehicle type.",
            "format": "int32"
          },
          "vehicleTypeId": {
            "type": "integer",
            "description": "Broader category grouping several vehicle types together (e.g. Van, Straight Truck, and Container all share the same category).",
            "format": "int32"
          },
          "detail": {
            "type": "string",
            "description": "Human-readable name (e.g. \"Van\", \"Reefer\", \"Flatbed\")."
          },
          "value": {
            "type": "integer",
            "description": "Bit-flag value for this vehicle type (a power of two). Postings encode their accepted vehicle types as a bitwise combination of these values.",
            "format": "int64"
          },
          "code": {
            "type": "string",
            "description": "Single-letter code for this vehicle type (e.g. \"V\" for Van, \"R\" for Reefer). This is the character used in a posting's VehicleType string."
          }
        }
      },
      "VehicleSizeResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unique row identifier for this vehicle size.",
            "format": "int32"
          },
          "detail": {
            "type": "string",
            "description": "Human-readable name (\"TL\", \"LTL\", or \"Both\").",
            "nullable": true
          },
          "code": {
            "type": "string",
            "description": "Single-letter code (\"T\" for TL, \"L\" for LTL, \"B\" for Both).",
            "nullable": true
          },
          "postingType": {
            "type": "string",
            "description": "Echoes the requested postingType query parameter back (\"E\" or \"L\")."
          },
          "value": {
            "type": "integer",
            "description": "Same value as Id, included for convenience.",
            "format": "int32"
          }
        }
      },
      "ProblemDetails": {
        "type": "object",
        "description": "RFC9457 compatible problem details/ error response class. this can be used by configuring startup like so:\napp.UseFastEndpoints(c => c.Errors.UseProblemDetails())",
        "additionalProperties": false,
        "properties": {
          "type": {
            "type": "string",
            "default": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1"
          },
          "title": {
            "type": "string",
            "default": "One or more validation errors occurred."
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "default": 400
          },
          "instance": {
            "type": "string",
            "default": "/api/route"
          },
          "traceId": {
            "type": "string",
            "default": "0HMPNHL0JHL76:00000001"
          },
          "detail": {
            "type": "string",
            "description": "the details of the error",
            "nullable": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProblemDetails_Error"
            }
          }
        }
      },
      "ProblemDetails_Error": {
        "type": "object",
        "description": "the error details object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "the name of the error or property of the dto that caused the error",
            "default": "Error or field name"
          },
          "reason": {
            "type": "string",
            "description": "the reason for the error",
            "default": "Error reason"
          },
          "code": {
            "type": "string",
            "description": "the code of the error",
            "nullable": true
          },
          "severity": {
            "type": "string",
            "description": "the severity of the error",
            "nullable": true
          }
        }
      },
      "VehicleAttributeResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unique row identifier for this attribute.",
            "format": "int32"
          },
          "detail": {
            "type": "string",
            "description": "Human-readable name (e.g. \"Hazmat\", \"Tarps\", \"Team\")."
          },
          "value": {
            "type": "integer",
            "description": "Numeric code identifying this attribute.",
            "format": "int64"
          },
          "code": {
            "type": "string",
            "description": "Single-letter code for this attribute (e.g. \"Z\" for Hazmat)."
          }
        }
      },
      "DeleteLoadPostingRequest": {
        "type": "object",
        "example": {
          "pStatus": null
        },
        "additionalProperties": false,
        "properties": {
          "pStatus": {
            "type": "string",
            "description": "Optional status override to target (max 1 character). Defaults to \"O\" (Open) when omitted.",
            "maxLength": 1,
            "minLength": 0,
            "nullable": true,
            "example": null
          }
        }
      },
      "LoadPostingResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "token": {
            "type": "integer",
            "description": "Unique identifier for this posting. Use this to reference the posting in later calls (e.g. GET/DELETE by token).",
            "format": "int32"
          },
          "dateAvail": {
            "type": "string",
            "description": "Date/time the load becomes available, in UTC.",
            "format": "date-time"
          },
          "srceCity": {
            "type": "string",
            "description": "Source city name."
          },
          "srceSt": {
            "type": "string",
            "description": "Source state/province code."
          },
          "srceLong": {
            "type": "number",
            "description": "Source city longitude."
          },
          "srceLat": {
            "type": "number",
            "description": "Source city latitude."
          },
          "srceRadius": {
            "type": "integer",
            "description": "Search radius in miles around the source city, as originally requested.",
            "format": "int32"
          },
          "destCity": {
            "type": "string",
            "description": "Destination city name."
          },
          "destSt": {
            "type": "string",
            "description": "Destination state/province code."
          },
          "destLong": {
            "type": "number",
            "description": "Destination city longitude."
          },
          "destLat": {
            "type": "number",
            "description": "Destination city latitude."
          },
          "destRadius": {
            "type": "integer",
            "description": "Search radius in miles around the destination city, as originally requested.",
            "format": "int32"
          },
          "vehicleSize": {
            "type": "string",
            "description": "Single-letter vehicle size code — see GET /v2/reference/vehicle-sizes."
          },
          "vehicleType": {
            "type": "string",
            "description": "Single-letter vehicle type code(s) — see GET /v2/reference/vehicle-types."
          },
          "comment": {
            "type": "string",
            "description": "Free-text comment on the posting, if any.",
            "nullable": true
          },
          "postingAttrib": {
            "type": "string",
            "description": "Single-letter vehicle attribute code(s), if any — see GET /v2/reference/vehicle-attributes.",
            "nullable": true
          },
          "createdOn": {
            "type": "string",
            "description": "Date/time the posting was created, in UTC.",
            "format": "date-time"
          },
          "pStatus": {
            "type": "string",
            "description": "Posting status: \"O\" (Open) or \"P\" (Pending).",
            "nullable": true
          },
          "initialLeadCount": {
            "type": "integer",
            "description": "Number of matching leads found at the moment this posting was created.",
            "format": "int32"
          },
          "length": {
            "type": "integer",
            "description": "Load length, if specified.",
            "format": "int32",
            "nullable": true
          },
          "weight": {
            "type": "integer",
            "description": "Load weight, if specified.",
            "format": "int32",
            "nullable": true
          },
          "rate": {
            "type": "number",
            "description": "Rate amount, if specified.",
            "nullable": true
          },
          "currency": {
            "type": "integer",
            "description": "Currency code: 0 = USD, 1 = CAD.",
            "nullable": true,
            "enum": [
              0,
              1
            ]
          },
          "email": {
            "type": "string",
            "description": "Contact email for this posting.",
            "nullable": true
          },
          "custCD": {
            "type": "string",
            "description": "Loadlink customer code that owns this posting."
          },
          "postMode": {
            "type": "string",
            "description": "Posting mode. Always \"A\" for postings created via this API.",
            "nullable": true
          }
        }
      },
      "CreatePostingResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "token": {
            "type": "integer",
            "description": "Unique identifier for the newly created posting. Use this same value as the {token} in GET /v2/leads/equipment/{token} to retrieve leads for this posting, and in GET/DELETE /v2/postings/equipment/{token} to look up or remove it.",
            "format": "int32"
          },
          "message": {
            "type": "string",
            "description": "Human-readable confirmation message."
          },
          "createdAt": {
            "type": "string",
            "description": "Date/time the posting was created, in UTC.",
            "format": "date-time"
          }
        }
      },
      "PostLoadPostingRequest": {
        "type": "object",
        "example": {
          "dateAvail": "2026-07-20T08:00:00Z",
          "srceCity": "Brampton",
          "srceSt": "ON",
          "srceRadius": 200,
          "destCity": "Surrey",
          "destSt": "BC",
          "destRadius": 200,
          "vehicleSize": "T",
          "vehicleType": "VR",
          "contactEmail": "dispatch@example.com",
          "contactPhone": null,
          "comment": "No tarps",
          "postingAttrib": "AZ",
          "length": 53,
          "weight": 45000,
          "rate": 2.15,
          "currency": 0
        },
        "additionalProperties": false,
        "required": [
          "dateAvail",
          "srceCity",
          "srceSt",
          "destCity",
          "destSt",
          "vehicleSize",
          "vehicleType"
        ],
        "properties": {
          "dateAvail": {
            "type": "string",
            "description": "Load available date/time in ISO 8601 UTC format (e.g. 2026-07-01T00:00:00Z). Non-UTC values are coerced to UTC.",
            "format": "date-time",
            "minLength": 1,
            "nullable": false,
            "example": "2026-07-20T08:00:00Z"
          },
          "srceCity": {
            "type": "string",
            "description": "Source city name. Must match a known city (see city lookup) together with SrceSt.",
            "maxLength": 50,
            "minLength": 0,
            "nullable": false,
            "example": "Brampton"
          },
          "srceSt": {
            "type": "string",
            "description": "Source state/province code (2 letters, e.g. \"ON\", \"TX\").",
            "maxLength": 2,
            "minLength": 2,
            "nullable": false,
            "example": "ON"
          },
          "srceRadius": {
            "type": "integer",
            "description": "Search radius in miles around the source city (50–500).",
            "format": "int32",
            "maximum": 500,
            "minimum": 50,
            "example": 200
          },
          "destCity": {
            "type": "string",
            "description": "Destination city name. Must match a known city (see city lookup) together with DestSt.",
            "maxLength": 50,
            "minLength": 0,
            "nullable": false,
            "example": "Surrey"
          },
          "destSt": {
            "type": "string",
            "description": "Destination state/province code (2 letters, e.g. \"ON\", \"TX\").",
            "maxLength": 2,
            "minLength": 2,
            "nullable": false,
            "example": "BC"
          },
          "destRadius": {
            "type": "integer",
            "description": "Search radius in miles around the destination city (50–500).",
            "format": "int32",
            "maximum": 500,
            "minimum": 50,
            "example": 200
          },
          "vehicleSize": {
            "type": "string",
            "description": "Single-letter vehicle size code — see GET /v2/reference/vehicle-sizes (e.g. \"T\" for TL).",
            "maxLength": 10,
            "minLength": 0,
            "nullable": false,
            "example": "T"
          },
          "vehicleType": {
            "type": "string",
            "description": "One or more single-letter vehicle type codes concatenated together — see GET /v2/reference/vehicle-types (e.g. \"VR\" for Van + Reefer).",
            "maxLength": 50,
            "minLength": 0,
            "pattern": "^[VvRrKkFfSsDdTtCcUuHhLlOoNnPpIiEe]+$",
            "nullable": false,
            "example": "VR"
          },
          "contactEmail": {
            "type": "string",
            "description": "Contact email for this posting. Optional — defaults to your account's own email when omitted. Does not have to match the authenticated account if supplied.",
            "format": "email",
            "pattern": "^[^@]+@[^@]+$",
            "nullable": true,
            "example": "dispatch@example.com"
          },
          "contactPhone": {
            "type": "string",
            "description": "Contact phone for this posting. Optional — defaults to your account's own phone when omitted.",
            "maxLength": 15,
            "minLength": 0,
            "nullable": true,
            "example": null
          },
          "comment": {
            "type": "string",
            "description": "Free-text comment shown alongside the posting (max 180 characters).",
            "maxLength": 180,
            "minLength": 0,
            "nullable": true,
            "example": "No tarps"
          },
          "postingAttrib": {
            "type": "string",
            "description": "One or more single-letter vehicle attribute codes concatenated together — see GET /v2/reference/vehicle-attributes (e.g. \"AZ\" for Air Ride + Hazmat).",
            "nullable": true,
            "example": "AZ"
          },
          "length": {
            "type": "integer",
            "description": "Load length.",
            "format": "int32",
            "nullable": true,
            "example": 53
          },
          "weight": {
            "type": "integer",
            "description": "Load weight.",
            "format": "int32",
            "nullable": true,
            "example": 45000
          },
          "rate": {
            "type": "number",
            "description": "Rate amount. Brokers: total trip cost. Carriers: per-mile rate.",
            "nullable": true,
            "example": 2.15
          },
          "currency": {
            "type": "integer",
            "description": "Currency code: 0 = USD, 1 = CAD.",
            "nullable": true,
            "example": 0,
            "enum": [
              0,
              1
            ]
          }
        }
      },
      "LoadLeadResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "loadToken": {
            "type": "integer",
            "description": "Token of the load posting this lead was matched against.",
            "format": "int32"
          },
          "dateAvail": {
            "type": "string",
            "description": "Date/time the matched equipment is available, in UTC.",
            "format": "date-time"
          },
          "srceCountry": {
            "type": "string",
            "description": "Matched equipment's source country."
          },
          "srceCity": {
            "type": "string",
            "description": "Matched equipment's source city."
          },
          "srceSt": {
            "type": "string",
            "description": "Matched equipment's source state/province code."
          },
          "srceLong": {
            "type": "number",
            "description": "Matched equipment's source longitude."
          },
          "srceLat": {
            "type": "number",
            "description": "Matched equipment's source latitude."
          },
          "destCountry": {
            "type": "string",
            "description": "Matched equipment's destination country."
          },
          "destCity": {
            "type": "string",
            "description": "Matched equipment's destination city."
          },
          "destSt": {
            "type": "string",
            "description": "Matched equipment's destination state/province code."
          },
          "destLong": {
            "type": "number",
            "description": "Matched equipment's destination longitude."
          },
          "destLat": {
            "type": "number",
            "description": "Matched equipment's destination latitude."
          },
          "vehicleSize": {
            "type": "string",
            "description": "Single-letter vehicle size code the matched equipment offers — see GET /v2/reference/vehicle-sizes."
          },
          "vehicleType": {
            "type": "string",
            "description": "Single-letter vehicle type code(s) the matched equipment offers — see GET /v2/reference/vehicle-types."
          },
          "comment": {
            "type": "string",
            "description": "Free-text comment on the matched equipment, if any.",
            "nullable": true
          },
          "dfo": {
            "type": "number",
            "description": "Distance in miles from the load posting's source to the matched equipment's source (\"Distance From Origin\")."
          },
          "dfd": {
            "type": "integer",
            "description": "Distance in miles from the load posting's destination to the matched equipment's destination (\"Distance From Destination\").",
            "format": "int32"
          },
          "dirO": {
            "type": "string",
            "description": "Direction code, if available.",
            "nullable": true
          },
          "postingAttrib": {
            "type": "string",
            "description": "Single-letter vehicle attribute code(s) the matched equipment offers, if any — see GET /v2/reference/vehicle-attributes.",
            "nullable": true
          },
          "createdOn": {
            "type": "string",
            "description": "Date/time the matched equipment was posted, in UTC.",
            "format": "date-time"
          },
          "equipmentToken": {
            "type": "integer",
            "description": "Token of the matched equipment posting.",
            "format": "int32"
          },
          "subscriberType": {
            "type": "string",
            "description": "Subscriber type of the account that posted the matched equipment, if available.",
            "nullable": true
          },
          "length": {
            "type": "integer",
            "description": "Matched equipment's length, if specified.",
            "format": "int32",
            "nullable": true
          },
          "weight": {
            "type": "integer",
            "description": "Matched equipment's weight capacity, if specified.",
            "format": "int32",
            "nullable": true
          },
          "rate": {
            "type": "number",
            "description": "Rate amount for the matched equipment, if specified.",
            "nullable": true
          },
          "currency": {
            "type": "integer",
            "description": "Currency code: 0 = USD, 1 = CAD.",
            "nullable": true,
            "enum": [
              0,
              1
            ]
          },
          "company": {
            "description": "Contact details for the company that posted the matched equipment, if available.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/LeadCompany"
              }
            ]
          }
        }
      },
      "LeadCompany": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "description": "Company name.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Company email address.",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "Company phone number.",
            "nullable": true
          },
          "dba": {
            "type": "string",
            "description": "\"Doing business as\" trade name, if different from Name.",
            "nullable": true
          },
          "extension": {
            "type": "string",
            "description": "Phone extension, if any.",
            "nullable": true
          },
          "preferredEmail": {
            "type": "string",
            "description": "Preferred contact email, if different from Email.",
            "nullable": true
          },
          "hoursOfOperation": {
            "type": "string",
            "description": "Company's stated hours of operation.",
            "nullable": true
          },
          "durationWithLoadlink": {
            "type": "string",
            "description": "How long this company has been a Loadlink customer.",
            "nullable": true
          },
          "customerName": {
            "type": "string",
            "description": "Loadlink customer account name.",
            "nullable": true
          },
          "mcIccNumber": {
            "type": "integer",
            "description": "US motor carrier operating authority number (MC/ICC number), if the carrier is US-registered.",
            "format": "int32",
            "nullable": true
          },
          "dotNumber": {
            "type": "integer",
            "description": "US DOT (Department of Transportation) number, if the carrier is US-registered.",
            "format": "int32",
            "nullable": true
          },
          "ontarioCvor": {
            "type": "string",
            "description": "Ontario CVOR (Commercial Vehicle Operator's Registration) number, if the carrier is Ontario-registered.",
            "nullable": true
          },
          "pqNir": {
            "type": "string",
            "description": "Quebec carrier registration number, if the carrier is Quebec-registered.",
            "nullable": true
          },
          "nscNumber": {
            "type": "string",
            "description": "Canadian NSC (National Safety Code) number, if the carrier is Canadian-registered.",
            "nullable": true
          },
          "address": {
            "description": "Company's mailing address.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/LeadAddress"
              }
            ]
          }
        }
      },
      "LeadAddress": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "street": {
            "type": "string",
            "description": "Street address.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "City.",
            "nullable": true
          },
          "province": {
            "type": "string",
            "description": "State/province code.",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "description": "Postal or ZIP code.",
            "nullable": true
          }
        }
      },
      "DeleteEquipmentPostingRequest": {
        "type": "object",
        "example": {
          "pStatus": null
        },
        "additionalProperties": false,
        "properties": {
          "pStatus": {
            "type": "string",
            "description": "Optional status override to target (max 1 character). Defaults to \"O\" (Open) when omitted.",
            "maxLength": 1,
            "minLength": 0,
            "nullable": true,
            "example": null
          }
        }
      },
      "EquipmentPostingResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "token": {
            "type": "integer",
            "description": "Unique identifier for this posting. Use this to reference the posting in later calls (e.g. GET/DELETE by token).",
            "format": "int32"
          },
          "dateAvail": {
            "type": "string",
            "description": "Date/time the equipment becomes available, in UTC.",
            "format": "date-time"
          },
          "srceCity": {
            "type": "string",
            "description": "Source city name."
          },
          "srceSt": {
            "type": "string",
            "description": "Source state/province code."
          },
          "srceLong": {
            "type": "number",
            "description": "Source city longitude."
          },
          "srceLat": {
            "type": "number",
            "description": "Source city latitude."
          },
          "srceRadius": {
            "type": "integer",
            "description": "Search radius in miles around the source city, as originally requested.",
            "format": "int32"
          },
          "destCity": {
            "type": "string",
            "description": "Destination city name."
          },
          "destSt": {
            "type": "string",
            "description": "Destination state/province code."
          },
          "destLong": {
            "type": "number",
            "description": "Destination city longitude."
          },
          "destLat": {
            "type": "number",
            "description": "Destination city latitude."
          },
          "destRadius": {
            "type": "integer",
            "description": "Search radius in miles around the destination city, as originally requested.",
            "format": "int32"
          },
          "vehicleSize": {
            "type": "string",
            "description": "Single-letter vehicle size code — see GET /v2/reference/vehicle-sizes."
          },
          "vehicleType": {
            "type": "string",
            "description": "Single-letter vehicle type code(s) — see GET /v2/reference/vehicle-types."
          },
          "comment": {
            "type": "string",
            "description": "Free-text comment on the posting, if any.",
            "nullable": true
          },
          "postingAttrib": {
            "type": "string",
            "description": "Single-letter vehicle attribute code(s), if any — see GET /v2/reference/vehicle-attributes.",
            "nullable": true
          },
          "createdOn": {
            "type": "string",
            "description": "Date/time the posting was created, in UTC.",
            "format": "date-time"
          },
          "pStatus": {
            "type": "string",
            "description": "Posting status: \"O\" (Open) or \"P\" (Pending).",
            "nullable": true
          },
          "corridor": {
            "type": "string",
            "description": "Corridor matching setting: \"C\" (corridor) or \"R\" (radius). Automatically \"R\" when source and destination were the same city at creation.",
            "nullable": true
          },
          "initialLeadCount": {
            "type": "integer",
            "description": "Number of matching leads found at the moment this posting was created.",
            "format": "int32"
          },
          "length": {
            "type": "integer",
            "description": "Equipment length, if specified.",
            "format": "int32",
            "nullable": true
          },
          "weight": {
            "type": "integer",
            "description": "Equipment weight capacity, if specified.",
            "format": "int32",
            "nullable": true
          },
          "rate": {
            "type": "number",
            "description": "Rate amount, if specified.",
            "nullable": true
          },
          "currency": {
            "type": "integer",
            "description": "Currency code: 0 = USD, 1 = CAD.",
            "nullable": true,
            "enum": [
              0,
              1
            ]
          },
          "email": {
            "type": "string",
            "description": "Contact email for this posting.",
            "nullable": true
          },
          "custCD": {
            "type": "string",
            "description": "Loadlink customer code that owns this posting."
          },
          "postMode": {
            "type": "string",
            "description": "Posting mode. Always \"A\" for postings created via this API.",
            "nullable": true
          }
        }
      },
      "PostEquipmentPostingRequest": {
        "type": "object",
        "example": {
          "dateAvail": "2026-07-20T08:00:00Z",
          "srceCity": "Sarnia",
          "srceSt": "ON",
          "srceRadius": 200,
          "destCity": "Brampton",
          "destSt": "ON",
          "destRadius": 200,
          "vehicleSize": "T",
          "vehicleType": "VR",
          "contactEmail": "dispatch@example.com",
          "contactPhone": null,
          "comment": "Reefer unit available",
          "postingAttrib": "AZ",
          "corridor": "C",
          "length": 53,
          "weight": 45000,
          "rate": 2.1,
          "currency": 0
        },
        "additionalProperties": false,
        "required": [
          "dateAvail",
          "srceCity",
          "srceSt",
          "destCity",
          "destSt",
          "vehicleSize",
          "vehicleType"
        ],
        "properties": {
          "dateAvail": {
            "type": "string",
            "description": "Equipment available date/time in ISO 8601 UTC format (e.g. 2026-07-01T00:00:00Z). Non-UTC values are coerced to UTC.",
            "format": "date-time",
            "minLength": 1,
            "nullable": false,
            "example": "2026-07-20T08:00:00Z"
          },
          "srceCity": {
            "type": "string",
            "description": "Source city name. Must match a known city (see city lookup) together with SrceSt.",
            "maxLength": 50,
            "minLength": 0,
            "nullable": false,
            "example": "Sarnia"
          },
          "srceSt": {
            "type": "string",
            "description": "Source state/province code (2 letters, e.g. \"ON\", \"TX\").",
            "maxLength": 2,
            "minLength": 2,
            "nullable": false,
            "example": "ON"
          },
          "srceRadius": {
            "type": "integer",
            "description": "Search radius in miles around the source city (50–500).",
            "format": "int32",
            "maximum": 500,
            "minimum": 50,
            "example": 200
          },
          "destCity": {
            "type": "string",
            "description": "Destination city name. Must match a known city (see city lookup) together with DestSt.",
            "maxLength": 50,
            "minLength": 0,
            "nullable": false,
            "example": "Brampton"
          },
          "destSt": {
            "type": "string",
            "description": "Destination state/province code (2 letters, e.g. \"ON\", \"TX\").",
            "maxLength": 2,
            "minLength": 2,
            "nullable": false,
            "example": "ON"
          },
          "destRadius": {
            "type": "integer",
            "description": "Search radius in miles around the destination city (50–500).",
            "format": "int32",
            "maximum": 500,
            "minimum": 50,
            "example": 200
          },
          "vehicleSize": {
            "type": "string",
            "description": "Single-letter vehicle size code — see GET /v2/reference/vehicle-sizes (e.g. \"T\" for TL).",
            "maxLength": 10,
            "minLength": 0,
            "nullable": false,
            "example": "T"
          },
          "vehicleType": {
            "type": "string",
            "description": "One or more single-letter vehicle type codes concatenated together — see GET /v2/reference/vehicle-types (e.g. \"VR\" for Van + Reefer).",
            "maxLength": 50,
            "minLength": 0,
            "pattern": "^[VvRrKkFfSsDdTtCcUuHhLlOoNnPpIiEe]+$",
            "nullable": false,
            "example": "VR"
          },
          "contactEmail": {
            "type": "string",
            "description": "Contact email for this posting. Optional — defaults to your account's own email when omitted. Does not have to match the authenticated account if supplied.",
            "format": "email",
            "pattern": "^[^@]+@[^@]+$",
            "nullable": true,
            "example": "dispatch@example.com"
          },
          "contactPhone": {
            "type": "string",
            "description": "Contact phone for this posting. Optional — defaults to your account's own phone when omitted.",
            "maxLength": 15,
            "minLength": 0,
            "nullable": true,
            "example": null
          },
          "comment": {
            "type": "string",
            "description": "Free-text comment shown alongside the posting (max 180 characters).",
            "maxLength": 180,
            "minLength": 0,
            "nullable": true,
            "example": "Reefer unit available"
          },
          "postingAttrib": {
            "type": "string",
            "description": "One or more single-letter vehicle attribute codes concatenated together — see GET /v2/reference/vehicle-attributes (e.g. \"AZ\" for Air Ride + Hazmat).",
            "nullable": true,
            "example": "AZ"
          },
          "corridor": {
            "type": "string",
            "description": "\"C\" (corridor) to widen the match beyond the source/destination radius circles to include postings reasonably along the route, or \"R\" (radius) for standard radius-only matching. Automatically overridden to \"R\" when source and destination are the same city.",
            "pattern": "^[CR]$",
            "nullable": true,
            "example": "C"
          },
          "length": {
            "type": "integer",
            "description": "Equipment length.",
            "format": "int32",
            "nullable": true,
            "example": 53
          },
          "weight": {
            "type": "integer",
            "description": "Equipment weight capacity.",
            "format": "int32",
            "nullable": true,
            "example": 45000
          },
          "rate": {
            "type": "number",
            "description": "Rate amount. Brokers: total trip cost. Carriers: per-mile rate.",
            "nullable": true,
            "example": 2.1
          },
          "currency": {
            "type": "integer",
            "description": "Currency code: 0 = USD, 1 = CAD.",
            "nullable": true,
            "example": 0,
            "enum": [
              0,
              1
            ]
          }
        }
      },
      "EquipmentLeadResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "equipmentToken": {
            "type": "integer",
            "description": "Token of the equipment posting this lead was matched against.",
            "format": "int32"
          },
          "dateAvail": {
            "type": "string",
            "description": "Date/time the matched load is available, in UTC.",
            "format": "date-time"
          },
          "srceCountry": {
            "type": "string",
            "description": "Matched load's source country."
          },
          "srceCity": {
            "type": "string",
            "description": "Matched load's source city."
          },
          "srceSt": {
            "type": "string",
            "description": "Matched load's source state/province code."
          },
          "srceLong": {
            "type": "number",
            "description": "Matched load's source longitude."
          },
          "srceLat": {
            "type": "number",
            "description": "Matched load's source latitude."
          },
          "destCountry": {
            "type": "string",
            "description": "Matched load's destination country."
          },
          "destCity": {
            "type": "string",
            "description": "Matched load's destination city."
          },
          "destSt": {
            "type": "string",
            "description": "Matched load's destination state/province code."
          },
          "destLong": {
            "type": "number",
            "description": "Matched load's destination longitude."
          },
          "destLat": {
            "type": "number",
            "description": "Matched load's destination latitude."
          },
          "vehicleSize": {
            "type": "string",
            "description": "Single-letter vehicle size code the matched load requires — see GET /v2/reference/vehicle-sizes."
          },
          "vehicleType": {
            "type": "string",
            "description": "Single-letter vehicle type code(s) the matched load requires — see GET /v2/reference/vehicle-types."
          },
          "comment": {
            "type": "string",
            "description": "Free-text comment on the matched load, if any.",
            "nullable": true
          },
          "dfo": {
            "type": "number",
            "description": "Distance in miles from the equipment posting's source to the matched load's source (\"Distance From Origin\")."
          },
          "dfd": {
            "type": "integer",
            "description": "Distance in miles from the equipment posting's destination to the matched load's destination (\"Distance From Destination\").",
            "format": "int32"
          },
          "dirO": {
            "type": "string",
            "description": "Direction code, if available.",
            "nullable": true
          },
          "postingAttrib": {
            "type": "string",
            "description": "Single-letter vehicle attribute code(s) the matched load requires, if any — see GET /v2/reference/vehicle-attributes.",
            "nullable": true
          },
          "distance": {
            "type": "number",
            "description": "Distance in miles for the matched load's own lane (source to destination)."
          },
          "createdOn": {
            "type": "string",
            "description": "Date/time the matched load was posted, in UTC.",
            "format": "date-time"
          },
          "loadToken": {
            "type": "integer",
            "description": "Token of the matched load posting.",
            "format": "int32"
          },
          "subscriberType": {
            "type": "string",
            "description": "Subscriber type of the account that posted the matched load, if available.",
            "nullable": true
          },
          "length": {
            "type": "integer",
            "description": "Matched load's length, if specified.",
            "format": "int32",
            "nullable": true
          },
          "weight": {
            "type": "integer",
            "description": "Matched load's weight, if specified.",
            "format": "int32",
            "nullable": true
          },
          "rate": {
            "type": "number",
            "description": "Rate amount for the matched load, if specified.",
            "nullable": true
          },
          "currency": {
            "type": "integer",
            "description": "Currency code: 0 = USD, 1 = CAD.",
            "nullable": true,
            "enum": [
              0,
              1
            ]
          },
          "company": {
            "description": "Contact details for the company that posted the matched load, if available.",
            "nullable": true,
            "oneOf": [
              {
                "$ref": "#/components/schemas/LeadCompany"
              }
            ]
          }
        }
      },
      "AuthorizeResponse": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "accessToken": {
            "type": "string"
          },
          "tokenType": {
            "type": "string"
          },
          "expiresIn": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "AuthorizeRequest": {
        "type": "object",
        "example": {
          "email": "dispatch@example.com",
          "orgToken": "ll_example-org-token"
        },
        "additionalProperties": false,
        "required": [
          "email",
          "orgToken"
        ],
        "properties": {
          "email": {
            "type": "string",
            "format": "email",
            "minLength": 1,
            "pattern": "^[^@]+@[^@]+$",
            "nullable": false,
            "example": "dispatch@example.com"
          },
          "orgToken": {
            "type": "string",
            "maxLength": 100,
            "minLength": 0,
            "nullable": false,
            "example": "ll_example-org-token"
          }
        }
      }
    },
    "securitySchemes": {
      "OrgTokenBearer": {
        "type": "http",
        "description": "Bearer token from POST /v2/authorize — exchange your org token for one, then use it here.",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "tags": [
    {
      "name": "Authorize"
    },
    {
      "name": "LoadPostings"
    },
    {
      "name": "EquipmentPostings"
    },
    {
      "name": "Leads"
    },
    {
      "name": "Reference"
    }
  ]
}