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