---
updatedAt: 2026-08-28T21:58:12.000Z
agentTools:
  projectIndex: https://developer.truckstop.com/llms.txt
---

# Get the monitoring change history for a carrier

Returns the modules that changed for the given DOT, and when, since the given cursor or datetime. cursor takes precedence when both are given.

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "CarrierHub",
    "description": "Public operations exposed to Truckstop customers",
    "version": "1.6.0",
    "x-serviceName": "CarrierHub External"
  },
  "tags": [
    {
      "name": "Carrier Hub",
      "description": "Public operations exposed to Truckstop customers"
    }
  ],
  "paths": {
    "/monitoring/carriers/{dotNumber}/changes": {
      "parameters": [
        {
          "name": "dotNumber",
          "in": "path",
          "required": true,
          "description": "DOT number of the carrier.",
          "schema": {
            "type": "string",
            "minLength": 1,
            "maxLength": 25
          }
        }
      ],
      "get": {
        "tags": [
          "Carrier Hub"
        ],
        "summary": "Get the monitoring change history for a carrier",
        "description": "Returns the modules that changed for the given DOT, and when, since the given cursor or datetime. cursor takes precedence when both are given.",
        "operationId": "get-monitoring-carrier-detail-changes",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "Opaque cursor from a previous response's cursor field.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "description": "UTC datetime for backfill/resync. Ignored if cursor is also supplied. Defaults to midnight UTC one day ago when neither cursor nor since is given.",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "modules",
            "in": "query",
            "required": false,
            "description": "List of modules to restrict results to. Omitted returns changes across all modules.",
            "schema": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/ExternalModule"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of changes to return. Defaults to 100; maximum 500.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 500,
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Modules changed for the given DOT since the given cursor or datetime.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MonitoringCarrierChanges"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Standard400"
          },
          "401": {
            "$ref": "#/components/responses/Standard401"
          },
          "404": {
            "$ref": "#/components/responses/Standard404"
          },
          "499": {
            "$ref": "#/components/responses/Standard499"
          },
          "500": {
            "$ref": "#/components/responses/Standard500"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Provide a bearer token in the Authorization header: `Authorization: Bearer <token>`."
      }
    },
    "schemas": {
      "ProblemDetails": {
        "type": "object",
        "title": "Problem Details",
        "description": "Standard problem details object used for error responses.",
        "additionalProperties": false,
        "properties": {
          "type": {
            "type": "string",
            "description": "A URI reference that identifies the problem type.",
            "nullable": true,
            "example": "https://tools.ietf.org/html/rfc9110#section-15.5.1"
          },
          "title": {
            "type": "string",
            "description": "A short human-readable summary of the problem type.",
            "nullable": true,
            "example": "Bad Request"
          },
          "status": {
            "type": "integer",
            "description": "The HTTP status code for this occurrence of the problem.",
            "nullable": true,
            "example": 400
          },
          "detail": {
            "type": "string",
            "description": "A human-readable explanation specific to this occurrence of the problem.",
            "nullable": true,
            "example": "The request body is invalid."
          },
          "instance": {
            "type": "string",
            "description": "A URI reference that identifies the specific occurrence of the problem.",
            "nullable": true
          },
          "errors": {
            "type": "object",
            "description": "A dictionary of validation errors, keyed by property name.",
            "nullable": true,
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        },
        "example": {
          "type": "string",
          "title": "string",
          "status": 0,
          "detail": "string",
          "instance": "string",
          "errors": {
            "additionalProp1": [
              "string"
            ],
            "additionalProp2": [
              "string"
            ],
            "additionalProp3": [
              "string"
            ]
          }
        }
      },
      "ExternalChangeEventType": {
        "title": "External Change Event Type",
        "description": "The kind of change that occurred to a monitored module.",
        "type": "string",
        "enum": [
          "ADDED",
          "UPDATED",
          "DELETED"
        ]
      },
      "ExternalModule": {
        "title": "External Module",
        "description": "One of the data modules that can be requested for a monitored carrier.",
        "type": "string",
        "enum": [
          "Demographics",
          "Authority",
          "Insurance",
          "Safety",
          "Reputation"
        ]
      },
      "MonitoringCarrierChange": {
        "title": "Monitoring Carrier Change",
        "description": "A single module change for a monitored carrier.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "module",
          "eventType",
          "updatedAt"
        ],
        "properties": {
          "module": {
            "$ref": "#/components/schemas/ExternalModule"
          },
          "eventType": {
            "$ref": "#/components/schemas/ExternalChangeEventType"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "When this change occurred."
          }
        }
      },
      "MonitoringCarrierChanges": {
        "title": "Monitoring Carrier Changes",
        "description": "The modules that changed for a single DOT, and when, since a given cursor or datetime.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "changes",
          "cursor"
        ],
        "properties": {
          "changes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MonitoringCarrierChange"
            }
          },
          "cursor": {
            "type": "string",
            "description": "Opaque cursor for this response. Pass back as the next request's cursor param to get only changes after this point."
          }
        }
      }
    },
    "responses": {
      "Standard400": {
        "description": "There was a problem with the data provided for this request.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      },
      "Standard401": {
        "description": "Authorization was denied for this request.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      },
      "Standard500": {
        "description": "A server side error occurred.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      },
      "Standard404": {
        "description": "The requested resource was not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      },
      "Standard499": {
        "description": "The request was closed by the client before the server could respond.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "http://api.truckstop.com/carrierhub/v1"
    }
  ],
  "x-readme": {},
  "security": [
    {
      "bearerAuth": []
    }
  ]
}
```