BNSF Schedules API

The BNSF Schedules API returns published intermodal transit schedules for the BNSF network, so a shipper can plan departure and arrival timing before booking freight. A single operation, declared as a Restricted Service requiring separate BNSF authorisation.

Operations 1

GET /v1/intermodal-schedules Intermodal Schedules - Returns all Intermodal Schedules. #

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/bnsf-schedules-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

bnsf-schedules-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: BNSF Schedules API
  description: Published intermodal transit schedules for the BNSF network, used to plan departure and arrival timing for
    intermodal freight.
  termsOfService: http://www.bnsf.com/site-terms-of-use.html
  contact:
    name: BNSF Customer API
    email: CustomerAPI@bnsf.com
  version: '1.0'
servers:
- url: https://api.bnsf.com:6443
  description: Production
- url: https://api-trial.bnsf.com:6443
  description: Trial
paths:
  /v1/intermodal-schedules:
    get:
      tags:
      - Schedules
      summary: Intermodal Schedules - Returns all Intermodal Schedules.
      parameters:
      - name: shipmentServiceLevelCode
        in: query
        description: E=Expedited; P = Premium; Y = Empty
        schema:
          type: string
          title: Schema
          example: E
      - name: businessTypeCode
        in: query
        description: D=Domestic; I=International; B=International and Domestic
        schema:
          type: string
          title: Schema
          example: D
      - name: equipmentTypeCode
        in: query
        description: K=Container; V=Trailer
        schema:
          type: string
          title: Schema
          example: K
      responses:
        '200':
          description: '**OK**


            The request has succeeded.'
          content:
            application/json:
              schema:
                type: object
                title: Schema
                properties:
                  elements:
                    type: array
                    title: Elements
                    items:
                      $ref: '#/components/schemas/intermodal_schedules'
                    nullable: false
                additionalProperties: true
                nullable: false
        '400':
          $ref: '#/components/responses/400'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '405':
          $ref: '#/components/responses/405'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '504':
          $ref: '#/components/responses/504'
      operationId: getV1IntermodalSchedules
components:
  schemas:
    intermodal_schedules:
      type: object
      title: Intermodal Schedules
      properties:
        additionalDescription:
          type: string
          title: additionalDescription
          description: Customer specific information.
          example: None
        additionalDetails:
          type: string
          title: additionalDetails
          description: Customer specific information.
          example: None
        businessTypeName:
          type: string
          title: Business Type
          description: Service schedules for business types. I=International; D=Domestic; or B= International and Domestic
          example: Domestic
        destinationAvailabilityDayOfWeekName:
          type: string
          title: Destination Availability Day Of Week
          description: Destination availability day of week
          example: Friday
        destinationAvailabilityTime:
          type: string
          title: Destination Availability Time
          description: Desitnation availability time
          example: 04:00
        destinationStationName:
          type: string
          title: Destination Facility
          description: Destination station/facility
          example: CHICAGO
        destinationStateCode:
          type: string
          title: Destination State
          description: Destination state
          example: IL
        equipmentTypeName:
          type: string
          title: Equipment Type
          description: Equipment type. K=Container; V=Trailer
          example: Container
        bnsfTransitGoalHourCount:
          type: string
          title: Goal Hours
          description: Goal hours, number of hours from cutoff to availability
          example: '24'
        interchangeDeliveredSCAC:
          type: string
          title: Interchange Delivered Carrier
          description: Interchange delivered carrier (to)
          example: UPRR
        interchangeReceivedSCAC:
          type: string
          title: Interchange Received Carrier
          description: Interchange received carrier (from)
          example: NS
        originCutoffDayOfWeekName:
          type: string
          title: Origin Cutoff Day Of Week
          description: Origin cutoff day of week
          example: Monday
        originCutoffTime:
          type: string
          title: Origin Cutoff Time
          description: Origin cutoff time
          example: 600
        originStationName:
          type: string
          title: Origin Facility
          description: Origin station/facility
          example: ALBUQUERQUE
        originStateCode:
          type: string
          title: Origin State
          description: Origin State
          example: NM
        shipmentServiceLevelName:
          type: string
          title: Service Level
          description: Service level billed for shipment. E=Expedited; P = Premium; Y = Empty
          example: Expedited
        updateTimestamp:
          type: string
          title: updateTimestamp
          description: Timestamp when the schedule was updated.
          example: 09/03/2019 09:34
      additionalProperties: true
      nullable: false
  responses:
    '400':
      description: '**Bad Request**


        The request could not be understood by the server due to incorrect syntax. Do not repeat the request without modifications.'
    '401':
      description: '**Unauthorized**


        Indicates that the request requires user authentication information. The client MAY repeat the request with a suitable
        Authorization.'
    '403':
      description: "Unauthorized request. Here are the most common causes:\n    \n* You are getting 403 Access Denied.\n\n\
        \   * It takes a few days for us to get you set up after you register. When set up is complete, you will receive an\
        \ email letting you know. If you have not received the email, please wait up to five business days. Let us know via\
        \ API Support if you still have not received the email after five business days.\n   * You can also get this error\
        \ if your certificate is not configured properly on your side. Please review the Mutual Authentication in the Getting\
        \ Started section of our documentation.\n\n\n* You are getting 403 \"message\": \"Insufficient privileges\" when accessing\
        \ a restricted service for which you do not have permission. You can use our Registration form to request access.\
        \ Be sure to explain the situation in the \"Please explain how you intend to use the API\" field.\n"
    '404':
      description: '**Not Found**


        The server cannot find the requested resource (URI). That is, the address of the endpoint in your request does not
        exist. Please consult the documentation.'
    '405':
      description: '**Method Not Allowed**


        The request HTTP method is known by the server but has been disabled and cannot be used for that resource. For example,
        you may be using GET when POST is required. Please consult the documentation.'
    '429':
      description: "**Too Many Requests**\n\nThe BNSF API Gateway enforces rate limits to maintain application security and\
        \ performance.  Current rate limits are set as follows:\n* 1 API Request Per Second, Per Partner, Per Service\n* 15\
        \ API Requests Per Minute, Per Partner, Per Service\n* 100 API Request Per Minute, Per Service\n \nWhen requests exceed\
        \ these limits the API Gateway will return a **429 Too Many Requests** error response. Upon receiving such exceptions,\
        \ you can resubmit failed requests in a rate-limited manner, complying with the API Gateway throttle limits. "
    '500':
      description: '**Internal Server Error**


        The server encountered an unexpected condition which prevented it from fulfilling the request. This is always a problem
        on the server side. Our internal support systems will be made aware.'
    '504':
      description: '**Gateway Timeout**


        The server is acting as a gateway and cannot get a response in time for a request. Wait about one minute then try
        again.'
  securitySchemes:
    MutualTLS:
      type: mutualTLS
      description: 'BNSF requires certificate-based mutual TLS (two-way authentication). Client certificates must be x509
        PEM, issued by a recognised public Certificate Authority (Domain Validation, Organization Validation, Extended Validation
        or S/MIME), effective no longer than 36 months, with Extended Key Usage including Client Authentication (OID 1.3.6.1.5.5.7.3.2).
        Self-signed, private, Let''s Encrypt, webCARES and Cloudflare-issued certificates are not accepted. Source: https://www.bnsf.com/ship-with-bnsf/support-services/customer-api/getting-started/'
    Restricted:
      type: mutualTLS
      description: 'Restricted Service. The same client certificate applies, but the certificate must additionally be authorised
        for this service by BNSF API Support. Unauthorised callers receive 403 "Insufficient privileges". Restricted Services
        are only available in the Production environment. Source: https://www.bnsf.com/ship-with-bnsf/support-services/customer-api/support/'
security:
- MutualTLS: []
- Restricted: []
tags:
- name: Schedules
x-generated-from: openapi/_original/bnsf-schedules-openapi.json