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

# Infer Tracking Number (Beta)

> Predict the carrier SCAC and tracking number type from a bill of lading, booking, or container number using the Terminal49 Infer endpoint.

<Info>
  **Beta Feature** - This endpoint is currently in beta. The API is stable, but
  the schema and behavior may evolve based on feedback.
</Info>

## What this endpoint does

Provide a tracking number (container, bill of lading, or booking). The endpoint returns:

* The **predicted VOCC carrier SCAC** to use for tracking
* The **predicted number type**
* A confidence-driven **decision** (`auto_select`, `needs_confirmation`, `no_prediction`)

<Info>
  Terminal49 uses machine learning prediction across container, bill of lading,
  and booking numbers. For container numbers, Terminal49 leverages tens of
  millions of historical container movements to predict which carrier is moving
  the container (about 9 out of 10 times).
</Info>

## How to use the result

<Warning>
  This endpoint has its own rate-limit bucket: 200 requests per minute per API key.
</Warning>

<Card title="Infer Tracking Number Guide" icon="book" href="/api-docs/in-depth-guides/auto-detect-carrier">
  Learn how to use Infer Tracking Number to reliably create tracking requests
</Card>


## OpenAPI

````yaml post /tracking_requests/infer_number
openapi: 3.0.0
info:
  title: Terminal49 API Reference
  version: 0.2.0
  contact:
    name: Terminal49 API support
    url: https://www.terminal49.com
    email: support@terminal49.com
  description: >-
    The Terminal 49 API offers a convenient way to programmatically track your
    shipments from origin to destination.


    Please enter your API key into the "Variables" tab before using these
    endpoints within Postman.
  x-label: Beta
  termsOfService: https://www.terminal49.com/terms
servers:
  - url: https://api.terminal49.com/v2
    description: Production
security:
  - authorization: []
tags:
  - name: Containers
  - name: Custom Field Definitions
  - name: Custom Field Options
  - name: Custom Fields
  - name: Shipments
  - name: Locations
  - name: Events
  - name: Tracking Requests
  - name: Webhooks
  - name: Webhook Notifications
  - name: Ports
  - name: Metro Areas
  - name: Terminals
  - name: Routing (Paid)
  - name: Documents
  - name: Email Submissions
  - name: Document Schemas
  - name: Search
paths:
  /tracking_requests/infer_number:
    post:
      tags:
        - Tracking Requests
      summary: Infer Tracking Number
      description: >-
        Predict the carrier SCAC (VOCC) and number type from a tracking number.
        Provide a container number, bill of lading number, or booking number and
        receive the predicted carrier with confidence and a decision value. Use
        this to auto-populate carrier fields before creating a tracking request.
      operationId: post-infer-number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                number:
                  type: string
                  description: >-
                    The tracking number to analyze (container number, bill of
                    lading, or booking number)
                  example: WHLU1234560
              required:
                - number
            examples:
              Container Number:
                value:
                  number: WHLU1234560
              Bill of Lading:
                value:
                  number: EGLV084900042045
      responses:
        '200':
          description: Successfully inferred number type and shipping line
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: req_123e4567-e89b-12d3-a456-426614174000
                      type:
                        type: string
                        example: infer_number_results
                      attributes:
                        type: object
                        properties:
                          number_type:
                            type: string
                            enum:
                              - container
                              - bill_of_lading
                              - booking
                          validation:
                            type: object
                            properties:
                              is_valid:
                                type: boolean
                                nullable: true
                              type:
                                type: string
                                enum:
                                  - container
                                  - shipment
                              check_digit_passed:
                                type: boolean
                                nullable: true
                              parsed_number:
                                type: string
                                nullable: true
                              reason:
                                type: string
                                nullable: true
                          shipping_line:
                            type: object
                            properties:
                              decision:
                                type: string
                                enum:
                                  - auto_select
                                  - needs_confirmation
                                  - no_prediction
                              selected:
                                type: object
                                nullable: true
                                properties:
                                  scac:
                                    type: string
                                  name:
                                    type: string
                                  confidence:
                                    type: number
                              candidates:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    scac:
                                      type: string
                                    name:
                                      type: string
                                    confidence:
                                      type: number
              examples:
                Container - Auto Select:
                  value:
                    data:
                      id: req_123e4567-e89b-12d3-a456-426614174000
                      type: infer_number_results
                      attributes:
                        number_type: container
                        validation:
                          is_valid: true
                          type: container
                          check_digit_passed: true
                          parsed_number: null
                          reason: null
                        shipping_line:
                          decision: auto_select
                          selected:
                            scac: WHLC
                            name: Wan Hai Lines
                            confidence: 1
                          candidates:
                            - scac: WHLC
                              name: Wan Hai Lines
                              confidence: 1
        '422':
          description: Unprocessable Entity - Invalid tracking number format
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        status:
                          type: string
                        detail:
                          type: string
              examples:
                Invalid Number:
                  value:
                    errors:
                      - status: '422'
                        detail: This reference number is not valid.
        '429':
          description: Too Many Requests - Rate limit exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        status:
                          type: string
                        detail:
                          type: string
              examples:
                Rate Limit Exceeded:
                  value:
                    errors:
                      - status: '429'
                        detail: Rate limit exceeded
          headers:
            Retry-After:
              description: Number of seconds to wait before making another request
              schema:
                type: integer
                example: 60
      security:
        - authorization: []
components:
  securitySchemes:
    authorization:
      name: Authorization
      type: apiKey
      in: header
      description: >-
        Use a Terminal49 API key in the `Authorization` header with the `Token`
        prefix.


        `Authorization: Token YOUR_API_KEY`

````