> ## Documentation Index
> Fetch the complete documentation index at: https://docs.withterminal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Historical Vehicle Locations

> List the historical breadcrumb locations for a vehicle.

*Note:*

Given the large volume of location data available, we encourage customers to accept compressed (`gzip`) responses in order to maximize throughput. This is supported with many popular HTTP clients. Result limits vary depending on if results are compressed or not.


## OpenAPI

````yaml GET /vehicles/{vehicleId}/locations
openapi: 3.1.0
info:
  title: Terminal Telematics API
  description: >-
    Terminal is a unified API that makes it easy to integrate with the leading
    telematics service providers.
  version: '0.0'
  contact:
    name: Terminal
    email: connect@withterminal.com
    url: https://www.withterminal.com
servers:
  - url: https://api.withterminal.com/tsp/v1
    description: Production
  - url: https://api.sandbox.withterminal.com/tsp/v1
    description: Sandbox
security:
  - Authorization: []
tags:
  - name: Authentication
  - name: Connections
  - name: Data Management
  - name: Drivers
  - name: Groups
  - name: Hours of Service
  - name: IFTA
  - name: Issues
  - name: Link
  - name: Providers
  - name: Safety
  - name: Trailers
  - name: Vehicles
  - name: Vehicle Utilization
  - name: Webhook Events
paths:
  /vehicles/{vehicleId}/locations:
    parameters:
      - schema:
          title: VehicleId
          description: Unique identifier for the vehicle in Terminal.
          type: string
          format: ulid
          pattern: ^vcl_[0-9A-HJKMNP-TV-Z]{26}$
          example: vcl_01D8ZQFGHVJ858NBF2Q7DV9MNC
        name: vehicleId
        in: path
        required: true
        description: Vehicle to retrieve breadcrumb locations for
    get:
      tags:
        - Vehicles
      summary: Historical Vehicle Locations
      description: >-
        List the historical breadcrumb locations for a vehicle.


        _Note:_


        Given the large volume of location data available, we encourage
        customers to accept compressed (`gzip`) responses in order to maximize
        throughput. This is supported with many popular HTTP clients. Result
        limits vary depending on if results are compressed or not.
      operationId: listHistoricalVehicleLocations
      parameters:
        - name: X-Application-Id
          in: header
          required: false
          description: >-
            Scopes the request to a Terminal application in the caller's
            organization. Required for multi-application organizations when
            using a user session or OAuth access token. API keys are already
            bound to a single application.
          schema:
            type: string
        - name: Connection-Token
          in: header
          required: true
          schema:
            type: string
            example: con_tkn_22vUhkC6tgre4kwaYfUkCDA1rzn6eyb4
            pattern: ^con_tkn_\S+$
          description: >-
            The token returned when a user authenticated their account. This
            authorizes access to a specific account.
        - name: cursor
          in: query
          schema:
            type: string
            format: cursor
            example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw
          description: Pagination cursor to start requests from
        - name: limit
          in: query
          required: false
          schema:
            type: integer
          description: The maximum number of results to return in a page.
        - name: startAt
          in: query
          required: false
          schema:
            type: string
            format: date-time
            example: '2021-01-06T03:24:53.000Z'
          description: Timestamp to start from - defaults to beginning of history
        - name: endAt
          in: query
          required: false
          schema:
            type: string
            format: date-time
            example: '2021-01-06T03:24:53.000Z'
          description: Timestamp to end at - defaults to now
        - name: raw
          in: query
          required: false
          schema:
            type: boolean
          description: >-
            Include raw responses used to normalize model. Used for debugging or
            accessing unique properties that are not unified.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      title: Vehicle Location
                      x-model-category: historical
                      allOf:
                        - type: object
                          properties:
                            id:
                              title: VehicleLocationId
                              description: >-
                                Unique identifier for the vehicle location in
                                Terminal.
                              type: string
                              format: ulid
                              example: vcl_loc_01D8ZQFGHVJ858NBF2Q7DV9MNC
                            sourceId:
                              title: SourceId
                              type: string
                              example: '123456789'
                              description: >-
                                The ID used to represent the entity in the
                                source system.
                          required:
                            - id
                        - title: Base Vehicle Location
                          type: object
                          properties:
                            provider:
                              title: Provider Code
                              type: string
                              example: geotab
                              description: >-
                                Every provider has a unique code to identify it
                                across Terminal's system. You can find each
                                provider's code under [provider
                                details](/providers).
                            vehicle:
                              description: >-
                                The ID of the vehicle that the location is
                                tracking.
                              example: vcl_01D8ZQFGHVJ858NBF2Q7DV9MNC
                              oneOf:
                                - title: VehicleId
                                  description: >-
                                    Unique identifier for the vehicle in
                                    Terminal.
                                  type: string
                                  format: ulid
                                  pattern: ^vcl_[0-9A-HJKMNP-TV-Z]{26}$
                                  example: vcl_01D8ZQFGHVJ858NBF2Q7DV9MNC
                                - title: Expanded Vehicle
                                  type: object
                                  properties:
                                    id:
                                      title: VehicleId
                                      description: >-
                                        Unique identifier for the vehicle in
                                        Terminal.
                                      type: string
                                      format: ulid
                                      pattern: ^vcl_[0-9A-HJKMNP-TV-Z]{26}$
                                      example: vcl_01D8ZQFGHVJ858NBF2Q7DV9MNC
                                  required:
                                    - id
                            driver:
                              example: drv_01D8ZQFGHVJ858NBF2Q7DV9MNC
                              oneOf:
                                - title: DriverId
                                  description: >-
                                    Unique identifier for the driver in
                                    Terminal.
                                  type: string
                                  format: ulid
                                  pattern: ^drv_[0-9A-HJKMNP-TV-Z]{26}$
                                  example: drv_01D8ZQFGHVJ858NBF2Q7DV9MNC
                                - title: Expanded Driver
                                  type: object
                                  properties:
                                    id:
                                      title: DriverId
                                      description: >-
                                        Unique identifier for the driver in
                                        Terminal.
                                      type: string
                                      format: ulid
                                      pattern: ^drv_[0-9A-HJKMNP-TV-Z]{26}$
                                      example: drv_01D8ZQFGHVJ858NBF2Q7DV9MNC
                                  required:
                                    - id
                              description: >-
                                Entities in Terminal are expandable. Using the
                                `expand` query parameter you can choose to
                                ingest just an ID or the full entity details.
                            locatedAt:
                              title: ISODateTime
                              type: string
                              format: date-time
                              example: '2021-01-06T03:24:53.000Z'
                              description: >-
                                [ISO 8601](https://www.w3.org/TR/NOTE-datetime)
                                date
                            location:
                              title: Coordinates
                              type: object
                              properties:
                                longitude:
                                  type: number
                                  example: -122.4194155
                                latitude:
                                  type: number
                                  example: 37.7749295
                              required:
                                - longitude
                                - latitude
                            address:
                              type: object
                              description: >-
                                Reverse geocoded address details for locations
                                when available at the source.
                              properties:
                                formatted:
                                  type: string
                                  example: 1.5 miles from Austin, TX
                            heading:
                              title: Heading In Degrees
                              type: number
                              description: Heading in degrees
                              example: 25
                            speed:
                              title: Speed In KPH
                              type: number
                              description: Speed in KPH rounded to 2 decimal places.
                              example: 95.33
                          required:
                            - provider
                            - vehicle
                            - locatedAt
                            - location
                        - type: object
                          properties:
                            metadata:
                              title: TimeSeriesMetadata
                              type: object
                              description: Internal metadata about the time series.
                              required:
                                - modifiedAt
                              properties:
                                modifiedAt:
                                  title: ModifiedAt
                                  type: string
                                  format: date-time
                                  description: >-
                                    The date and time the record was last
                                    updated in Terminal. Note: this is not the
                                    date and time the record was updated in the
                                    provider's system.
                            raw:
                              title: RawDataList
                              type: array
                              example: []
                              items:
                                title: RawData
                                type: object
                                properties:
                                  provider:
                                    type: string
                                  schema:
                                    type: string
                                  extractedAt:
                                    type: string
                                  data:
                                    type: object
                                required:
                                  - provider
                                  - schema
                                  - extractedAt
                                  - data
                          required:
                            - metadata
                      x-description: A point-in-time record of a vehicle's location.
                  next:
                    title: Pagination Cursor
                    type: string
                    example: cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw
                    description: Cursor used for pagination.
                    format: cursor
                required:
                  - results
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    enum:
                      - bad_request
                  message:
                    type: string
                    example: Invalid request body
                  detail:
                    type: array
                    items:
                      title: ErrorPathDetail
                      type: object
                      properties:
                        message:
                          type: string
                          example: '''vehicleId'' property must be a valid ulid'
                        path:
                          type: string
                          example: '{requestQuery}.vehicleId'
                        suggestion:
                          type: string
                          example: >-
                            Please ensure you submit a valid 'vehicleId'
                            property
                        context:
                          type: object
                      required:
                        - message
                        - path
                required:
                  - code
                  - message
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    enum:
                      - unauthorized
                  message:
                    type: string
                    example: Unauthorized Request
                  detail:
                    type: string
                    example: Please ensure you have a valid API key
                required:
                  - code
                  - message
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    enum:
                      - forbidden
                  message:
                    type: string
                    example: Forbidden Request
                  detail:
                    type: string
                    example: >-
                      Please ensure the connection token matches the resource
                      you are attempting to access.
                required:
                  - code
                  - message
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    enum:
                      - not_found
                  message:
                    type: string
                    example: Resource not found
                  detail:
                    type: string
                    example: 'Could not find resource with ID: 2342342'
                required:
                  - code
                  - message
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  code:
                    enum:
                      - too_many_requests
                  retryAfter:
                    description: The number of seconds to wait before retrying the request
                    type: integer
                    example: 60
                  message:
                    type: string
                    example: Too Many Requests
                  detail:
                    type: string
                    example: You have exceeded your rate limit. Please try again later.
                required:
                  - code
                  - message
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    enum:
                      - internal_server_error
                  message:
                    type: string
                    example: Internal Server Error
                  detail:
                    type: string
                    example: Something went wrong
                required:
                  - code
                  - message
components:
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer

````