> ## 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.

# Passthrough

> Make an authenticated request to the underlying telematics provider. 

This endpoint helps ensure that you are never limited by Terminal. You can use passthrough requests to access capabilities that may be limited to a specific TSP or not yet in the normalized model.

Our team is here and ready to support custom use cases that may need `/passthrough`.


## OpenAPI

````yaml POST /passthrough
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:
  /passthrough:
    parameters: []
    post:
      tags:
        - Data Management
      summary: Passthrough
      description: >-
        Make an authenticated request to the underlying telematics provider. 


        This endpoint helps ensure that you are never limited by Terminal. You
        can use passthrough requests to access capabilities that may be limited
        to a specific TSP or not yet in the normalized model.


        Our team is here and ready to support custom use cases that may need
        `/passthrough`.
      operationId: passthrough
      parameters:
        - 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.
      requestBody:
        content:
          application/json:
            schema:
              title: Passthrough Input
              type: object
              properties:
                method:
                  type: string
                  enum:
                    - GET
                    - POST
                    - PUT
                    - PATCH
                    - DELETE
                  description: The method for the third-party request, such as GET or POST.
                  example: POST
                path:
                  type: string
                  description: The path for the third-party request, such as `/reports`
                  example: /reports
                headers:
                  type: object
                  description: >-
                    The headers to use for the request (Terminal will handle the
                    connection's authorization headers)
                body:
                  type: string
                  description: The request body
                  example: '{"reportId":"1234"}'
              required:
                - method
                - path
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                title: Passthrough Output
                type: object
                properties:
                  method:
                    type: string
                    description: The HTTP method that was used when making the request.
                    example: POST
                  path:
                    type: string
                    description: The path that was called with the passthrough request.
                    example: /reports
                    default: /reports
                  statusCode:
                    type: integer
                    example: 200
                    description: The resulting status code from the passthrough request.
                  headers:
                    type: object
                    example:
                      Content-Type: application/json
                    description: Any returned headers from the passthrough request.
                  response:
                    example:
                      reportId: '1234'
                    description: The response body from the passthrough request
                    title: JSON Value
                    oneOf:
                      - type: object
                      - type: array
                      - type: string
                      - type: number
                      - type: boolean
                required:
                  - method
                  - path
                  - statusCode
                  - headers
                  - response
        '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
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    enum:
                      - unprocessable_entity
                      - connection_disconnected
                      - insufficient_permissions
                      - invalid_credentials
                    example: connection_disconnected
                  message:
                    type: string
                    example: Connection must be connected to perform this action
                  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
                    example: []
                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
        '501':
          description: Not Implemented
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    enum:
                      - not_implemented
                  message:
                    type: string
                    example: Not Implemented
                  detail:
                    type: string
                    example: This endpoint is not yet implemented
                required:
                  - code
                  - message
        '502':
          description: Bad Gateway
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    enum:
                      - bad_gateway
                  message:
                    type: string
                    example: Provider Unavailable
                  detail:
                    type: string
                    example: Error response received from provider with status 500
                required:
                  - code
                  - message
        '504':
          description: Gateway Timeout Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    enum:
                      - gateway_timeout
                  message:
                    type: string
                    example: Gateway Timeout
                required:
                  - code
                  - message
components:
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer

````