Trimble Zones API

Retrieves, creates, updates and deletes TruckMate zone codes. Zone codes can be viewed and maintained in the TruckMate Codes Maintenance application.

GitHub OpenAPI

Operations 5

GET /zones Retrieve zone codes #
POST /zones Create a new zone code #
GET /zones/{zoneId} Retrieve a zone code #
PUT /zones/{zoneId} Update a zone code #
DELETE /zones/{zoneId} Deletes a zone code #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/trimble:trimble-zones-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

trimble-zones-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: MasterData Zones API
  description: 'The Master Data management API allows for an external system to create, retrieve, update or delete TruckMate configuration data, such as Client, Vendor and Driver profiles, as well as sites, zones, commodity codes etc.


    Download latest released OpenAPI


    This documentation is based on the most currently released version of TruckMate. Documentation for previous versions can be accessed by navigating to the openapi.json endpoint for any given API (the service must be set up and running). For example: http://DOMAIN/openapi.json


    ---


    © 2026, Trimble Inc. All rights reserved. Unauthorized copying prohibited. Software functions, including our APIs and their specification, are subject to change without notice. Information contained herein is Trimble Confidential Information, used under license.


    ---'
  version: '1'
  x-tm-release: 26.3.125.0
tags:
- name: Zones
  description: Retrieves, creates, updates and deletes TruckMate zone codes. Zone codes can be viewed and maintained in the TruckMate Codes Maintenance application.
paths:
  /zones:
    get:
      summary: Retrieve zone codes
      description: 'Retrieves zone code records that can be used to specify zones for a freight bill or a trip..


        Zone codes can be viewed in the Codes Maintenance application > Zone tab.'
      operationId: GetZones
      security:
      - truckmateApiKeyAuth: []
      - webuserJwtAuth: []
      tags:
      - Zones
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/filter'
      - $ref: '#/components/parameters/orderBy'
      - $ref: '#/components/parameters/select'
      - name: codesByTripNumber
        in: query
        description: Retrieve next zone code or status code for a given trip number. The provided value must be a valid TruckMate status or zone code. If used to retrieve zone codes, must be used together with the tripNewStatus parameter.
        required: false
        schema:
          type: integer
      - name: tripNewStatus
        in: query
        description: Retrieve next zone codes for the provided status code value. The provided value must be a valid TruckMate status code. Must be used together with the codesByTripNumber parameter.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetZones200'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
    post:
      summary: Create a new zone code
      description: 'Creates one or more zone code records.


        Zone code records can be viewed in the Codes Maintenance application > Zone Codes tab.'
      operationId: PostZones
      security:
      - truckmateApiKeyAuth: []
      tags:
      - Zones
      requestBody:
        description: An array of JSON objects containing the properties of the zone code to be created.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefZonesPostRequest'
      parameters:
      - $ref: '#/components/parameters/select'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostZones201'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
  /zones/{zoneId}:
    parameters:
    - name: zoneId
      in: path
      description: zone path parameter
      required: true
      schema:
        type: string
    get:
      summary: Retrieve a zone code
      description: 'Retrieves a zone code record that can be used to specify zones for a freight bill or a trip.


        Zone codes can be viewed in the Codes Maintenance application > Zone tab.'
      operationId: GetZone
      security:
      - truckmateApiKeyAuth: []
      - webuserJwtAuth: []
      tags:
      - Zones
      parameters:
      - $ref: '#/components/parameters/select'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/zone'
                - type: object
                  properties:
                    href:
                      type: string
                      readOnly: true
                      description: Self-referencing URL for this resource
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
    put:
      summary: Update a zone code
      description: 'Updates one or more properties of a specific zone code record.


        Zone codes can be viewed in the Codes Maintenance application > Zone tab.'
      operationId: PutZone
      security:
      - truckmateApiKeyAuth: []
      tags:
      - Zones
      requestBody:
        description: A JSON object containing the properties of the Zone to be updated.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefZonePutRequest'
      parameters:
      - $ref: '#/components/parameters/select'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/zone'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
    delete:
      summary: Deletes a zone code
      description: 'Deletes a zone code record.


        Zone codes can be viewed in the Codes Maintenance application > Zone tab.'
      operationId: DeleteZone
      security:
      - truckmateApiKeyAuth: []
      tags:
      - Zones
      responses:
        '204':
          description: No Content
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ARTErrors'
components:
  parameters:
    offset:
      name: offset
      in: query
      description: Specifies the number of items to skip before beginning to select the records to return.
      required: false
      style: form
      explode: true
      schema:
        type: integer
        default: 0
    select:
      name: $select
      in: query
      description: Select allows to request a specified set of properties, see [Selecting](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part2-url-conventions.html#_Toc31361040)
      required: false
      style: form
      explode: true
      schema:
        type: string
    limit:
      name: limit
      in: query
      description: Specifies the maximum number of items to include in the response results.
      required: false
      style: form
      explode: true
      schema:
        type: integer
        default: 20
    orderBy:
      name: $orderBy
      in: query
      description: Field(s) to order returned resource by, with optional direction. E.g., "fieldName desc, fieldName2"
      required: false
      style: form
      explode: true
      schema:
        type: string
    filter:
      name: $filter
      in: query
      description: Filter items by property values, see [Filtering](http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_SystemQueryOptionfilter). Note, not all features of oData filter syntax are supported.
      required: false
      style: form
      explode: true
      schema:
        type: string
  schemas:
    ARTError:
      type: object
      properties:
        type:
          type: string
        title:
          type: string
        code:
          type: string
          description: Error code (optional, deprecated; omitted in Mobile Comm)
          deprecated: true
        description:
          type: string
          description: Human-readable description (optional, deprecated; omitted in Mobile Comm)
          deprecated: true
    GetZones200:
      type: object
      properties:
        href:
          type: string
          readOnly: true
          description: Self-referencing URL for this resource
        offset:
          type: integer
        limit:
          type: integer
        filter:
          type: string
        sort:
          type: string
        select:
          type: string
        count:
          type: integer
        zones:
          type: array
          items:
            $ref: '#/components/schemas/zone'
    zone:
      type: object
      properties:
        zoneId:
          type: string
          maxLength: 10
        shortDescription:
          type: string
          maxLength: 30
        longDescription:
          type: string
          maxLength: 131072
        parentZone:
          type: string
          maxLength: 10
        zoneLevel:
          type:
          - integer
          - 'null'
        autoTax1:
          type: string
          enum:
          - 'False'
          - 'True'
          - ''
        autoTax2:
          type: string
          enum:
          - 'False'
          - 'True'
          - ''
        exportName:
          type: string
          maxLength: 10
        rebuilt:
          type: string
          maxLength: 1
        latitude:
          type: string
          maxLength: 10
        longitude:
          type: string
          maxLength: 10
        latitudeSeconds:
          type:
          - integer
          - 'null'
        longitudeSeconds:
          type:
          - integer
          - 'null'
        interlinerAdvance:
          type: string
          maxLength: 10
        interlinerBeyond:
          type: string
          maxLength: 10
        interlinerBeyondCrossdock:
          type: string
          maxLength: 10
        terminalZone:
          type: string
          maxLength: 10
        junctionAdvance:
          type: string
          maxLength: 10
        junctionBeyond:
          type: string
          maxLength: 10
        isTerminal:
          type: string
          enum:
          - 'False'
          - 'True'
          - ''
        ratingZone:
          type: string
          maxLength: 10
        filterLevel1:
          type: string
          maxLength: 10
        filterLevel2:
          type: string
          maxLength: 10
        filterLevel3:
          type: string
          maxLength: 10
        postalCode:
          type: string
          maxLength: 10
        accessMinutes:
          type:
          - integer
          - 'null'
        piecesPerHour:
          type:
          - number
          - 'null'
        isInterchange:
          type: string
          enum:
          - 'False'
          - 'True'
          - ''
        province:
          type: string
          maxLength: 4
        serviceDaysAdvance:
          type:
          - integer
          - 'null'
        serviceDaysBeyond:
          type:
          - integer
          - 'null'
        isState:
          type: string
          enum:
          - 'False'
          - 'True'
          - ''
        city:
          type: string
          maxLength: 30
        address1:
          type: string
          maxLength: 40
        address2:
          type: string
          maxLength: 40
        gmtOffset:
          type: string
          maxLength: 6
        dstApplies:
          type: string
          enum:
          - 'False'
          - 'True'
          - ''
        imTermination:
          type: string
          enum:
          - 'False'
          - 'True'
          - ''
        serviceType:
          type: string
          maxLength: 10
        isHub:
          type: string
          enum:
          - 'False'
          - 'True'
          - ''
        country:
          type: string
          maxLength: 2
        defaultTerminal:
          type: string
          enum:
          - 'False'
          - 'True'
          - ''
        carbCompliant:
          type: string
          enum:
          - 'False'
          - 'True'
          - ''
        isRailYard:
          type: string
          enum:
          - 'False'
          - 'True'
          - ''
        excludeAutoAssign:
          type: string
          enum:
          - 'False'
          - 'True'
          - ''
        multiTermLookupZone:
          type: string
          maxLength: 10
        interlinerLookupZone:
          type: string
          maxLength: 10
        serviceTypeLookupZone:
          type: string
          maxLength: 10
    RefZonesPostRequest:
      type: object
      properties:
        zones:
          type: array
          items:
            $ref: '#/components/schemas/RefZonePostRequest'
    ARTErrors:
      type: object
      properties:
        type:
          type: string
        title:
          type: string
        status:
          type: integer
          enum:
          - 400
          - 401
          - 403
          - 404
          - 405
          - 409
          - 429
          - 500
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ARTError'
    RefZonePutRequest:
      type: object
      properties:
        shortDescription:
          type: string
          maxLength: 30
        longDescription:
          type: string
          maxLength: 131072
        parentZone:
          type: string
          maxLength: 10
        zoneLevel:
          type: integer
        autoTax1:
          type: string
          enum:
          - 'False'
          - 'True'
        autoTax2:
          type: string
          enum:
          - 'False'
          - 'True'
        exportName:
          type: string
          maxLength: 10
        rebuilt:
          type: string
          maxLength: 1
        latitude:
          type: string
          maxLength: 10
          pattern: (?:[0-8]\d|90)(?:[0-5]\d)(?:[0-5]\d)[NS]
        longitude:
          type: string
          maxLength: 10
          pattern: (?:0\d{2}|1[0-7]\d|180)(?:[0-5]\d)(?:[0-5]\d)[EW]
        latitudeSeconds:
          type: integer
        longitudeSeconds:
          type: integer
        interlinerAdvance:
          type: string
          maxLength: 10
        interlinerBeyond:
          type: string
          maxLength: 10
        interlinerBeyondCrossdock:
          type: string
          maxLength: 10
        terminalZone:
          type: string
          maxLength: 10
        junctionAdvance:
          type: string
          maxLength: 10
        junctionBeyond:
          type: string
          maxLength: 10
        isTerminal:
          type: string
          enum:
          - 'False'
          - 'True'
        ratingZone:
          type: string
          maxLength: 10
        filterLevel1:
          type: string
          maxLength: 10
        filterLevel2:
          type: string
          maxLength: 10
        filterLevel3:
          type: string
          maxLength: 10
        postalCode:
          type: string
          maxLength: 10
        accessMinutes:
          type: integer
        piecesPerHour:
          type: number
        isInterchange:
          type: string
          enum:
          - 'False'
          - 'True'
        province:
          type: string
          maxLength: 4
        serviceDaysAdvance:
          type: integer
        serviceDaysBeyond:
          type: integer
        isState:
          type: string
          enum:
          - 'False'
          - 'True'
        city:
          type: string
          maxLength: 30
        address1:
          type: string
          maxLength: 40
        address2:
          type: string
          maxLength: 40
        gmtOffset:
          type: string
          maxLength: 6
          pattern: ^(|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])$
        dstApplies:
          type: string
          enum:
          - 'False'
          - 'True'
        imTermination:
          type: string
          enum:
          - 'False'
          - 'True'
        serviceType:
          type: string
          maxLength: 10
        isHub:
          type: string
          enum:
          - 'False'
          - 'True'
        country:
          type: string
          maxLength: 2
        defaultTerminal:
          type: string
          enum:
          - 'False'
          - 'True'
        carbCompliant:
          type: string
          enum:
          - 'False'
          - 'True'
        isRailYard:
          type: string
          enum:
          - 'False'
          - 'True'
        excludeAutoAssign:
          type: string
          enum:
          - 'False'
          - 'True'
        multiTermLookupZone:
          type: string
          maxLength: 10
        interlinerLookupZone:
          type: string
          maxLength: 10
        serviceTypeLookupZone:
          type: string
          maxLength: 10
    PostZones201:
      type: object
      properties:
        zones:
          type: array
          items:
            $ref: '#/components/schemas/zone'
    RefZonePostRequest:
      type: object
      properties:
        zoneId:
          type: string
          maxLength: 10
        shortDescription:
          type: string
          maxLength: 30
        longDescription:
          type: string
          maxLength: 131072
        parentZone:
          type: string
          maxLength: 10
        zoneLevel:
          type: integer
        autoTax1:
          type: string
          enum:
          - 'False'
          - 'True'
        autoTax2:
          type: string
          enum:
          - 'False'
          - 'True'
        exportName:
          type: string
          maxLength: 10
        rebuilt:
          type: string
          maxLength: 1
        latitude:
          type: string
          maxLength: 10
          pattern: (?:[0-8]\d|90)(?:[0-5]\d)(?:[0-5]\d)[NS]
        longitude:
          type: string
          maxLength: 10
          pattern: (?:0\d{2}|1[0-7]\d|180)(?:[0-5]\d)(?:[0-5]\d)[EW]
        latitudeSeconds:
          type: integer
        longitudeSeconds:
          type: integer
        interlinerAdvance:
          type: string
          maxLength: 10
        interlinerBeyond:
          type: string
          maxLength: 10
        interlinerBeyondCrossdock:
          type: string
          maxLength: 10
        terminalZone:
          type: string
          maxLength: 10
        junctionAdvance:
          type: string
          maxLength: 10
        junctionBeyond:
          type: string
          maxLength: 10
        isTerminal:
          type: string
          enum:
          - 'False'
          - 'True'
        ratingZone:
          type: string
          maxLength: 10
        filterLevel1:
          type: string
          maxLength: 10
        filterLevel2:
          type: string
          maxLength: 10
        filterLevel3:
          type: string
          maxLength: 10
        postalCode:
          type: string
          maxLength: 10
        accessMinutes:
          type: integer
        piecesPerHour:
          type: number
        isInterchange:
          type: string
          enum:
          - 'False'
          - 'True'
        province:
          type: string
          maxLength: 4
        serviceDaysAdvance:
          type: integer
        serviceDaysBeyond:
          type: integer
        city:
          type: string
          maxLength: 30
        address1:
          type: string
          maxLength: 40
        address2:
          type: string
          maxLength: 40
        gmtOffset:
          type: string
          maxLength: 6
          pattern: ^(|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])$
        dstApplies:
          type: string
          enum:
          - 'False'
          - 'True'
        imTermination:
          type: string
          enum:
          - 'False'
          - 'True'
        serviceType:
          type: string
          maxLength: 10
        isHub:
          type: string
          enum:
          - 'False'
          - 'True'
        country:
          type: string
          maxLength: 2
        defaultTerminal:
          type: string
          enum:
          - 'False'
          - 'True'
        carbCompliant:
          type: string
          enum:
          - 'False'
          - 'True'
        isRailYard:
          type: string
          enum:
          - 'False'
          - 'True'
        excludeAutoAssign:
          type: string
          enum:
          - 'False'
          - 'True'
        multiTermLookupZone:
          type: string
          maxLength: 10
        interlinerLookupZone:
          type: string
          maxLength: 10
        serviceTypeLookupZone:
          type: string
          maxLength: 10
  securitySchemes:
    tidJwtAuth:
      type: http
      description: A time-limited JSON Web Token generated via separate POST request using TID
      scheme: bearer
    webuserJwtAuth:
      type: http
      description: A fresh JSON Web Token expires in four hours. It can be renewed by making a GET request to /login endpoint, or generated by making a POST request to /login endpoint
      scheme: bearer
    truckmateApiKeyAuth:
      type: http
      description: TruckMate API Key
      scheme: bearer
externalDocs:
  url: https://learn.transportation.trimble.com/