---
title: User Message Creation API Using Load Number
slug: fourkites-api-reference/user-message-creation-api-using-load-number
icon: {"apiMethod":"POST"}
createdAt: 2024-09-05T11:05:30.000Z
---

Using this API, you can add messages/comments to any specific shipment using the load number.

:::hint{type="info"}
### Rate Limit

**1 request per second**
:::

:::hint{type="info"}
### Format Supported

**JSON**
:::

:::hint{type="info"}
### Authenticated Resource

**API Key**
:::

For more information on Authentication, [click here](https://docs.fourkites.com/api-reference/authentication).&#x20;

:::ApiMethodV2
```json
{
  "name": "Production",
  "method": "POST",
  "url": "https://api.fourkites.com/api/v1/tracking/messages",
  "description": "",
  "tab": "examples",
  "examples": {
    "languages": [
      {
        "id": "fLRLQ6uLWFMejXGag2WHd",
        "language": "curl",
        "code": "curl --location --request POST 'https://api.fourkites.com/api/v1/tracking/messages' \\\n--header 'Content-Type: application/json' \\\n--header 'apikey;' \\\n--data-raw '{\n  \"message\": \"Hi\",\n  \"load_number\": \"test_load_create\",\n  \"preference\": \"loadNumber\",\n  \"sendToDriver\": false,\n  \"company_id\": \"rc-test-shipper\"\n}'",
        "customLabel": ""
      },
      {
        "id": "QjmoEY9GQ2OvPKOLXE4JF",
        "language": "java",
        "code": "OkHttpClient client = new OkHttpClient().newBuilder()\n  .build();\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\n  \\\"message\\\": \\\"Hi\\\",\\n  \\\"load_number\\\": \\\"test_load_create\\\",\\n  \\\"preference\\\": \\\"loadNumber\\\",\\n  \\\"sendToDriver\\\": false,\\n  \\\"company_id\\\": \\\"rc-test-shipper\\\"\\n}\");\nRequest request = new Request.Builder()\n  .url(\"https://api.fourkites.com/api/v1/tracking/messages\")\n  .method(\"POST\", body)\n  .addHeader(\"Content-Type\", \"application/json\")\n  .addHeader(\"apikey\", \"\")\n  .build();\nResponse response = client.newCall(request).execute();",
        "customLabel": ""
      },
      {
        "id": "z6Ws7A4E_JP8sQTz9qhXd",
        "language": "javascript",
        "code": "var settings = {\n  \"url\": \"https://api.fourkites.com/api/v1/tracking/messages\",\n  \"method\": \"POST\",\n  \"timeout\": 0,\n  \"headers\": {\n    \"Content-Type\": \"application/json\",\n    \"apikey\": \"\"\n  },\n  \"data\": JSON.stringify({\n    \"message\": \"Hi\",\n    \"load_number\": \"test_load_create\",\n    \"preference\": \"loadNumber\",\n    \"sendToDriver\": false,\n    \"company_id\": \"rc-test-shipper\"\n  }),\n};\n\n$.ajax(settings).done(function (response) {\n  console.log(response);\n});",
        "customLabel": ""
      },
      {
        "id": "-ACugWHhiibb6txFNHCi1",
        "language": "swift",
        "code": "import Foundation\n#if canImport(FoundationNetworking)\nimport FoundationNetworking\n#endif\n\nvar semaphore = DispatchSemaphore (value: 0)\n\nlet parameters = \"{\\n  \\\"message\\\": \\\"Hi\\\",\\n  \\\"load_number\\\": \\\"test_load_create\\\",\\n  \\\"preference\\\": \\\"loadNumber\\\",\\n  \\\"sendToDriver\\\": false,\\n  \\\"company_id\\\": \\\"rc-test-shipper\\\"\\n}\"\nlet postData = parameters.data(using: .utf8)\n\nvar request = URLRequest(url: URL(string: \"https://api.fourkites.com/api/v1/tracking/messages\")!,timeoutInterval: Double.infinity)\nrequest.addValue(\"application/json\", forHTTPHeaderField: \"Content-Type\")\nrequest.addValue(\"\", forHTTPHeaderField: \"apikey\")\n\nrequest.httpMethod = \"POST\"\nrequest.httpBody = postData\n\nlet task = URLSession.shared.dataTask(with: request) { data, response, error in \n  guard let data = data else {\n    print(String(describing: error))\n    semaphore.signal()\n    return\n  }\n  print(String(data: data, encoding: .utf8)!)\n  semaphore.signal()\n}\n\ntask.resume()\nsemaphore.wait()\n",
        "customLabel": ""
      },
      {
        "id": "Kl1IqEwGlVm6-ssIb-PeB",
        "language": "csharp",
        "code": "var client = new RestClient(\"https://api.fourkites.com/api/v1/tracking/messages\");\nclient.Timeout = -1;\nvar request = new RestRequest(Method.POST);\nrequest.AddHeader(\"Content-Type\", \"application/json\");\nrequest.AddHeader(\"apikey\", \"\");\nvar body = @\"{\" + \"\\n\" +\n@\"  \"\"message\"\": \"\"Hi\"\",\" + \"\\n\" +\n@\"  \"\"load_number\"\": \"\"test_load_create\"\",\" + \"\\n\" +\n@\"  \"\"preference\"\": \"\"loadNumber\"\",\" + \"\\n\" +\n@\"  \"\"sendToDriver\"\": false,\" + \"\\n\" +\n@\"  \"\"company_id\"\": \"\"rc-test-shipper\"\"\" + \"\\n\" +\n@\"}\";\nrequest.AddParameter(\"application/json\", body,  ParameterType.RequestBody);\nIRestResponse response = client.Execute(request);\nConsole.WriteLine(response.Content);",
        "customLabel": ""
      },
      {
        "id": "w_08ZFTV8ZPPe-PCt4M-Y",
        "language": "go",
        "code": "package main\n\nimport (\n  \"fmt\"\n  \"strings\"\n  \"net/http\"\n  \"io/ioutil\"\n)\n\nfunc main() {\n\n  url := \"https://api.fourkites.com/api/v1/tracking/messages\"\n  method := \"POST\"\n\n  payload := strings.NewReader(`{\n  \"message\": \"Hi\",\n  \"load_number\": \"test_load_create\",\n  \"preference\": \"loadNumber\",\n  \"sendToDriver\": false,\n  \"company_id\": \"rc-test-shipper\"\n}`)\n\n  client := &http.Client {\n  }\n  req, err := http.NewRequest(method, url, payload)\n\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  req.Header.Add(\"Content-Type\", \"application/json\")\n  req.Header.Add(\"apikey\", \"\")\n\n  res, err := client.Do(req)\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  defer res.Body.Close()\n\n  body, err := ioutil.ReadAll(res.Body)\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  fmt.Println(string(body))\n}",
        "customLabel": ""
      },
      {
        "id": "NpNKv5acsHrbmOSyemo8Y",
        "language": "ruby",
        "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://api.fourkites.com/api/v1/tracking/messages\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest[\"Content-Type\"] = \"application/json\"\nrequest[\"apikey\"] = \"\"\nrequest.body = JSON.dump({\n  \"message\": \"Hi\",\n  \"load_number\": \"test_load_create\",\n  \"preference\": \"loadNumber\",\n  \"sendToDriver\": false,\n  \"company_id\": \"rc-test-shipper\"\n})\n\nresponse = https.request(request)\nputs response.read_body\n",
        "customLabel": ""
      },
      {
        "id": "4HZk_WBjP4pH8IcePEqwH",
        "language": "python",
        "code": "import http.client\nimport json\n\nconn = http.client.HTTPSConnection(\"api.fourkites.com\")\npayload = json.dumps({\n  \"message\": \"Hi\",\n  \"load_number\": \"test_load_create\",\n  \"preference\": \"loadNumber\",\n  \"sendToDriver\": False,\n  \"company_id\": \"rc-test-shipper\"\n})\nheaders = {\n  'Content-Type': 'application/json',\n  'apikey': ''\n}\nconn.request(\"POST\", \"/api/v1/tracking/messages\", payload, headers)\nres = conn.getresponse()\ndata = res.read()\nprint(data.decode(\"utf-8\"))",
        "customLabel": ""
      }
    ],
    "selectedLanguageId": "fLRLQ6uLWFMejXGag2WHd"
  },
  "results": {
    "languages": [
      {
        "id": "EM5ZgFDZxEqXzXsamsUPE",
        "language": "200",
        "customLabel": "",
        "code": "{\n    \"statusCode\": 200,\n    \"message\": \"Created Comments for Loads\"\n}"
      },
      {
        "id": "9OJwmX552qhgAnL_7RHM2",
        "language": "400",
        "customLabel": "",
        "code": "{\n    \"statusCode\": 400,\n    \"errors\": [\"The maximum allowed length is 1000 characters. Please shorten your message and try again\"\n    ]\n}"
      }
    ],
    "selectedLanguageId": "EM5ZgFDZxEqXzXsamsUPE"
  },
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "name": "message",
        "kind": "required",
        "type": "string",
        "description": "Enter the message/comment you want to be added to the shipment."
      },
      {
        "name": "load_number",
        "kind": "required",
        "type": "string",
        "description": "Enter the load number to which you want the comment / message to be added.",
        "": "Enter the load number to which you want the comment / message to be added."
      },
      {
        "name": "preference",
        "kind": "required",
        "type": "string",
        "description": "Just add \"loadNumber\" as the value here.",
        "": "preference"
      },
      {
        "name": "sendToDriver",
        "kind": "optional",
        "type": "boolean",
        "description": "Set it as true for the message to be visible to the driver using CarrierLink mobile application.",
        "children": []
      },
      {
        "name": "company_id",
        "kind": "required",
        "type": "string",
        "description": "Add the relevant company id.",
        "": "Add the relevant company id."
      }
    ],
    "formDataParameters": []
  },
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "hasTryItOut": false,
  "autoGeneratedAnchorSlug": "production",
  "legacyHash": "SOHMf7ISa4TH1J4j1t4Ki"
}
```
:::

:::ApiMethodV2
```json
{
  "name": "Staging",
  "method": "POST",
  "url": "https://api-staging.fourkites.com/api/v1/tracking/messages",
  "description": "",
  "tab": "examples",
  "examples": {
    "languages": [
      {
        "id": "fLRLQ6uLWFMejXGag2WHd",
        "language": "curl",
        "code": "curl --location --request POST 'https://api-staging.fourkites.com/api/v1/tracking/messages' \\\n--header 'Content-Type: application/json' \\\n--header 'apikey;' \\\n--data-raw '{\n  \"message\": \"Hi\",\n  \"load_number\": \"test_load_create\",\n  \"preference\": \"loadNumber\",\n  \"sendToDriver\": false,\n  \"company_id\": \"rc-test-shipper\"\n}'",
        "customLabel": ""
      },
      {
        "id": "QjmoEY9GQ2OvPKOLXE4JF",
        "language": "java",
        "code": "OkHttpClient client = new OkHttpClient().newBuilder()\n  .build();\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\n  \\\"message\\\": \\\"Hi\\\",\\n  \\\"load_number\\\": \\\"test_load_create\\\",\\n  \\\"preference\\\": \\\"loadNumber\\\",\\n  \\\"sendToDriver\\\": false,\\n  \\\"company_id\\\": \\\"rc-test-shipper\\\"\\n}\");\nRequest request = new Request.Builder()\n  .url(\"https://api-staging.fourkites.com/api/v1/tracking/messages\")\n  .method(\"POST\", body)\n  .addHeader(\"Content-Type\", \"application/json\")\n  .addHeader(\"apikey\", \"\")\n  .build();\nResponse response = client.newCall(request).execute();",
        "customLabel": ""
      },
      {
        "id": "z6Ws7A4E_JP8sQTz9qhXd",
        "language": "javascript",
        "code": "var settings = {\n  \"url\": \"https://api-staging.fourkites.com/api/v1/tracking/messages\",\n  \"method\": \"POST\",\n  \"timeout\": 0,\n  \"headers\": {\n    \"Content-Type\": \"application/json\",\n    \"apikey\": \"\"\n  },\n  \"data\": JSON.stringify({\n    \"message\": \"Hi\",\n    \"load_number\": \"test_load_create\",\n    \"preference\": \"loadNumber\",\n    \"sendToDriver\": false,\n    \"company_id\": \"rc-test-shipper\"\n  }),\n};\n\n$.ajax(settings).done(function (response) {\n  console.log(response);\n});",
        "customLabel": ""
      },
      {
        "id": "-ACugWHhiibb6txFNHCi1",
        "language": "swift",
        "code": "import Foundation\n#if canImport(FoundationNetworking)\nimport FoundationNetworking\n#endif\n\nvar semaphore = DispatchSemaphore (value: 0)\n\nlet parameters = \"{\\n  \\\"message\\\": \\\"Hi\\\",\\n  \\\"load_number\\\": \\\"test_load_create\\\",\\n  \\\"preference\\\": \\\"loadNumber\\\",\\n  \\\"sendToDriver\\\": false,\\n  \\\"company_id\\\": \\\"rc-test-shipper\\\"\\n}\"\nlet postData = parameters.data(using: .utf8)\n\nvar request = URLRequest(url: URL(string: \"https://api-staging.fourkites.com/api/v1/tracking/messages\")!,timeoutInterval: Double.infinity)\nrequest.addValue(\"application/json\", forHTTPHeaderField: \"Content-Type\")\nrequest.addValue(\"\", forHTTPHeaderField: \"apikey\")\n\nrequest.httpMethod = \"POST\"\nrequest.httpBody = postData\n\nlet task = URLSession.shared.dataTask(with: request) { data, response, error in \n  guard let data = data else {\n    print(String(describing: error))\n    semaphore.signal()\n    return\n  }\n  print(String(data: data, encoding: .utf8)!)\n  semaphore.signal()\n}\n\ntask.resume()\nsemaphore.wait()\n",
        "customLabel": ""
      },
      {
        "id": "Kl1IqEwGlVm6-ssIb-PeB",
        "language": "csharp",
        "code": "var client = new RestClient(\"https://api-staging.fourkites.com/api/v1/tracking/messages\");\nclient.Timeout = -1;\nvar request = new RestRequest(Method.POST);\nrequest.AddHeader(\"Content-Type\", \"application/json\");\nrequest.AddHeader(\"apikey\", \"\");\nvar body = @\"{\" + \"\\n\" +\n@\"  \"\"message\"\": \"\"Hi\"\",\" + \"\\n\" +\n@\"  \"\"load_number\"\": \"\"test_load_create\"\",\" + \"\\n\" +\n@\"  \"\"preference\"\": \"\"loadNumber\"\",\" + \"\\n\" +\n@\"  \"\"sendToDriver\"\": false,\" + \"\\n\" +\n@\"  \"\"company_id\"\": \"\"rc-test-shipper\"\"\" + \"\\n\" +\n@\"}\";\nrequest.AddParameter(\"application/json\", body,  ParameterType.RequestBody);\nIRestResponse response = client.Execute(request);\nConsole.WriteLine(response.Content);",
        "customLabel": ""
      },
      {
        "id": "w_08ZFTV8ZPPe-PCt4M-Y",
        "language": "go",
        "code": "package main\n\nimport (\n  \"fmt\"\n  \"strings\"\n  \"net/http\"\n  \"io/ioutil\"\n)\n\nfunc main() {\n\n  url := \"https://api-staging.fourkites.com/api/v1/tracking/messages\"\n  method := \"POST\"\n\n  payload := strings.NewReader(`{\n  \"message\": \"Hi\",\n  \"load_number\": \"test_load_create\",\n  \"preference\": \"loadNumber\",\n  \"sendToDriver\": false,\n  \"company_id\": \"rc-test-shipper\"\n}`)\n\n  client := &http.Client {\n  }\n  req, err := http.NewRequest(method, url, payload)\n\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  req.Header.Add(\"Content-Type\", \"application/json\")\n  req.Header.Add(\"apikey\", \"\")\n\n  res, err := client.Do(req)\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  defer res.Body.Close()\n\n  body, err := ioutil.ReadAll(res.Body)\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  fmt.Println(string(body))\n}",
        "customLabel": ""
      },
      {
        "id": "NpNKv5acsHrbmOSyemo8Y",
        "language": "ruby",
        "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://api-staging.fourkites.com/api/v1/tracking/messages\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest[\"Content-Type\"] = \"application/json\"\nrequest[\"apikey\"] = \"\"\nrequest.body = JSON.dump({\n  \"message\": \"Hi\",\n  \"load_number\": \"test_load_create\",\n  \"preference\": \"loadNumber\",\n  \"sendToDriver\": false,\n  \"company_id\": \"rc-test-shipper\"\n})\n\nresponse = https.request(request)\nputs response.read_body\n",
        "customLabel": ""
      },
      {
        "id": "4HZk_WBjP4pH8IcePEqwH",
        "language": "python",
        "code": "import http.client\nimport json\n\nconn = http.client.HTTPSConnection(\"api-staging.fourkites.com\")\npayload = json.dumps({\n  \"message\": \"Hi\",\n  \"load_number\": \"test_load_create\",\n  \"preference\": \"loadNumber\",\n  \"sendToDriver\": False,\n  \"company_id\": \"rc-test-shipper\"\n})\nheaders = {\n  'Content-Type': 'application/json',\n  'apikey': ''\n}\nconn.request(\"POST\", \"/api/v1/tracking/messages\", payload, headers)\nres = conn.getresponse()\ndata = res.read()\nprint(data.decode(\"utf-8\"))",
        "customLabel": ""
      }
    ],
    "selectedLanguageId": "fLRLQ6uLWFMejXGag2WHd"
  },
  "results": {
    "languages": [
      {
        "id": "EM5ZgFDZxEqXzXsamsUPE",
        "language": "200",
        "customLabel": "",
        "code": "{\n    \"statusCode\": 200,\n    \"message\": \"Created Comments for Loads\"\n}"
      },
      {
        "id": "9OJwmX552qhgAnL_7RHM2",
        "language": "400",
        "customLabel": "",
        "code": "{\n    \"statusCode\": 400,\n    \"errors\": [\"The maximum allowed length is 1000 characters. Please shorten your message and try again\"\n    ]\n}"
      }
    ],
    "selectedLanguageId": "EM5ZgFDZxEqXzXsamsUPE"
  },
  "request": {
    "pathParameters": [],
    "queryParameters": [],
    "headerParameters": [],
    "bodyDataParameters": [
      {
        "name": "message",
        "kind": "required",
        "type": "string",
        "description": "Enter the message/comment you want to be added to the shipment."
      },
      {
        "name": "load_number",
        "kind": "required",
        "type": "string",
        "description": "Enter the load number to which you want the comment / message to be added.",
        "": "Enter the load number to which you want the comment / message to be added."
      },
      {
        "name": "preference",
        "kind": "required",
        "type": "string",
        "description": "Just add \"loadNumber\" as the value here.",
        "": "required"
      },
      {
        "name": "sendToDriver",
        "kind": "optional",
        "type": "boolean",
        "description": "Set it as true for the message to be visible to the driver using CarrierLink mobile application.",
        "children": []
      },
      {
        "name": "company_id",
        "kind": "required",
        "type": "string",
        "description": "Add the relevant company id.",
        "": "required"
      }
    ],
    "formDataParameters": []
  },
  "currentNewParameter": {
    "label": "Body Parameter",
    "value": "bodyDataParameters"
  },
  "hasTryItOut": false,
  "autoGeneratedAnchorSlug": "staging",
  "legacyHash": "S0dIx4dVr_J8p4aeqbzPc"
}
```
:::

