{ "openapi": "3.0.0", "info": { "title": "", "description": "", "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" } ], "paths": { "/v1/dray-booking/open": { "get": { "tags": [ "Requests" ], "summary": "Dray open booking details.", "parameters": [ { "name": "drayageBookingNumber", "in": "query", "description": "drayageBookingNumber", "required": true, "schema": { "type": "string", "title": "Schema", "example": "SH0987654 " } } ], "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DrayBookingResponse" } } } }, "400": { "description": "**Bad Request**", "content": { "application/json": { "schema": { "type": "object", "properties": { "httpErrors": { "type": "array", "items": { "type": "string", "example": "Invalid Booking Number" } }, "httpResponseCode": { "type": "string", "example": "400" } } } } } }, "403": { "$ref": "#/components/responses/403" }, "404": { "description": "**Not Found**", "content": { "application/json": { "schema": { "type": "object", "properties": { "httpErrors": { "type": "array", "items": { "type": "string", "example": "Not Found" } }, "httpResponseCode": { "type": "string", "example": "404" } } } } } }, "405": { "$ref": "#/components/responses/405" }, "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 **429 Too Many Requests** error response to the Client. Upon receiving such exceptions, the client can resubmit failed requests in a rate-limited manner, complying with the API Gateway throttle limits.\n" }, "500": { "$ref": "#/components/responses/500" }, "504": { "$ref": "#/components/responses/504" } }, "security": [ { "Restricted": [] } ] } }, "/v1/dray-plan/list-units ": { "post": { "tags": [ "Requests" ], "summary": "Dray Plan List Units- Returns a list of dray plans for a given supplier633 and list of unit id’s.", "parameters": [ { "name": "supplier633", "in": "query", "required": true, "schema": { "type": "string", "example": "APARTNERS633" } } ], "requestBody": { "$ref": "#/components/requestBodies/drayPlanListUnits" }, "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DrayPlan" } } } }, "400": { "description": "**Bad Request**", "content": { "application/json": { "schema": { "type": "object", "properties": { "httpErrors": { "type": "array", "items": { "type": "string", "example": "Invalid Booking Number" } }, "httpResponseCode": { "type": "string", "example": "400" } } } } } }, "403": { "$ref": "#/components/responses/403" }, "404": { "description": "**Not Found**", "content": { "application/json": { "schema": { "type": "object", "properties": { "httpErrors": { "type": "array", "items": { "type": "string", "example": "Not Found" } }, "httpResponseCode": { "type": "string", "example": "404" } } } } } }, "405": { "$ref": "#/components/responses/405" }, "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 **429 Too Many Requests** error response to the Client. Upon receiving such exceptions, the client can resubmit failed requests in a rate-limited manner, complying with the API Gateway throttle limits.\n" }, "500": { "$ref": "#/components/responses/500" }, "504": { "$ref": "#/components/responses/504" } }, "security": [ { "Restricted": [] } ] } }, "/v1/dray-plan/initial/{equipmentInitial}/number/{equipmentNumber}": { "delete": { "tags": [ "Requests" ], "summary": "Dray Plan- Remove dray plans.", "parameters": [ { "name": "equipmentInitial", "in": "path", "required": true, "schema": { "type": "string" }, "example": "BNSF" }, { "name": "equipmentNumber", "in": "path", "required": true, "schema": { "type": "string" }, "example": "12345" } ], "responses": { "200": { "description": "**OK**\n\nThe request has succeeded." }, "400": { "description": "**Bad Request**\n\nThe request could not be understood by the server due to incorrect syntax. Do not repeat the request without modifications.\n" }, "403": { "$ref": "#/components/responses/403" }, "404": { "description": "**Not Found**\n\nThe server cannot find the requested resource (URI). That is, the address of the endpoint in your request does not exist. Please consult the documentation.\n" }, "405": { "$ref": "#/components/responses/405" }, "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 **429 Too Many Requests** error response to the Client. Upon receiving such exceptions, the client can resubmit failed requests in a rate-limited manner, complying with the API Gateway throttle limits.\n" }, "500": { "$ref": "#/components/responses/500" }, "504": { "$ref": "#/components/responses/504" } }, "security": [ { "Restricted": [] } ] } }, "/v1/dray-plan/units": { "get": { "tags": [ "Requests" ], "summary": "Dray Plan- Capture an intermodal container's dwell profile from dray carriers and steamship lines.", "parameters": [ { "name": "supplier633", "in": "query", "description": "Supplier 633", "required": true, "schema": { "type": "string", "title": "Schema", "example": "APARTNERS633" } } ], "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DrayPlan" } } } }, "400": { "description": "**Bad Request**", "content": { "application/json": { "schema": { "type": "object", "properties": { "httpErrors": { "type": "array", "items": { "type": "string", "example": "Invalid Booking Number" } }, "httpResponseCode": { "type": "string", "example": "400" } } } } } }, "403": { "$ref": "#/components/responses/403" }, "404": { "description": "**Not Found**", "content": { "application/json": { "schema": { "type": "object", "properties": { "httpErrors": { "type": "array", "items": { "type": "string", "example": "Not Found" } }, "httpResponseCode": { "type": "string", "example": "404" } } } } } }, "405": { "$ref": "#/components/responses/405" }, "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 **429 Too Many Requests** error response to the Client. Upon receiving such exceptions, the client can resubmit failed requests in a rate-limited manner, complying with the API Gateway throttle limits.\n" }, "500": { "$ref": "#/components/responses/500" }, "504": { "$ref": "#/components/responses/504" } }, "security": [ { "Restricted": [] } ] }, "post": { "tags": [ "Requests" ], "summary": "Dray Plan- Create dray plans.", "parameters": [ { "name": "supplier633", "in": "query", "required": true, "schema": { "type": "string", "example": "APARTNERS633" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DrayPlan" } } } }, "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DrayPlan" } } } }, "400": { "description": "**Bad Request**", "content": { "application/json": { "schema": { "type": "object", "properties": { "httpErrors": { "type": "array", "items": { "type": "string", "example": "Invalid Booking Number" } }, "httpResponseCode": { "type": "string", "example": "400" } } } } } }, "403": { "$ref": "#/components/responses/403" }, "404": { "description": "**Not Found**", "content": { "application/json": { "schema": { "type": "object", "properties": { "httpErrors": { "type": "array", "items": { "type": "string", "example": "Not Found" } }, "httpResponseCode": { "type": "string", "example": "404" } } } } } }, "405": { "$ref": "#/components/responses/405" }, "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 **429 Too Many Requests** error response to the Client. Upon receiving such exceptions, the client can resubmit failed requests in a rate-limited manner, complying with the API Gateway throttle limits.\n" }, "500": { "$ref": "#/components/responses/500" }, "504": { "$ref": "#/components/responses/504" } }, "security": [ { "Restricted": [] } ] } }, "/v2/dvir": { "post": { "tags": [ "Requests" ], "summary": "Driver Vehicle Inspection Report - Submit chassis defects (Y/N) within BNSF intermodal hubs.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DvirInputBean" } } } }, "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "type": "object", "title": "Schema", "properties": { "httpErrors": { "type": "array", "title": "httpErrors", "description": "Response error of the API", "items": { "type": "string", "example": "Error" } }, "httpResponseCode": { "type": "number", "format": "float", "title": "httpResponseCode", "description": "Response status of the API", "example": 0 } } } } } }, "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" } }, "security": [ { "Restricted": [] } ] } }, "/v1/flips": { "post": { "tags": [ "Requests" ], "summary": "Flips - Returns details on authorized flips for given units.", "requestBody": { "$ref": "#/components/requestBodies/flipInputList" }, "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/equipmentFlip" } } } }, "400": { "$ref": "#/components/responses/400" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "405": { "$ref": "#/components/responses/405" }, "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 **429 Too Many Requests** error response to the Client. Upon receiving such exceptions, the client can resubmit failed requests in a rate-limited manner, complying with the API Gateway throttle limits.\n" }, "500": { "$ref": "#/components/responses/500" }, "504": { "$ref": "#/components/responses/504" } }, "security": [ { "Restricted": [] } ] } }, "/v1/hub": { "get": { "tags": [ "Requests" ], "summary": "Hub - Returns a list of valid lot locations at a given hub facility.", "parameters": [ { "name": "station333", "in": "query", "description": "The location of the most recently reported event", "required": true, "schema": { "type": "string", "example": "LOSANGELE" }, "example": "DALLAS" }, { "name": "stationStateCode", "in": "query", "description": "The location state of the most recently reported event", "required": true, "schema": { "type": "string", "example": "CA" }, "example": "TX" } ], "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Intermodal_Station" } } } }, "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" } } } }, "/v2/ingate": { "post": { "tags": [ "Requests" ], "summary": "Ingate - Returns way-billed units that can be registered prior to arrival at a hub facility.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Gate_Move_Request" } } } }, "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IngateResponse" } } } }, "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" } }, "security": [ { "Restricted": [] } ] } }, "/v1/ingate-management/current": { "get": { "tags": [ "Requests" ], "summary": "Current Gate Target - Returns all ingate targets related to the authorized list of 633s. **Prerequisites: Access to the “Ingate Planning” web tool is REQUIRED before using this endpoint.", "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json1": { "schema": { "type": "object", "properties": { "ContainerIngateTargets": { "type": "array", "items": { "type": "object", "properties": { "containerTargetCountEffectiveDate": { "type": "string", "description": "Date on which the given allocation of containers is being considered effective for the given shipper.", "example": "2024/08/05" }, "containerTargetCountExpirationDate": { "type": "string", "description": "Date on which the given allocation of containers is being considered no more effective for the given shipper.", "example": "2024/08/05" }, "containerIngateStation333": { "type": "string", "description": "Station at which containers are ingated.", "example": "CICERO" }, "containerIngateStationStateCode": { "type": "string", "description": "State code in which the station at which containers are ingated is located.", "example": "IL" }, "ingateOutgateMaxCode": { "type": "string", "description": "Code indicating the side of the gate, Ingate or Outgate, at which given Ingate Outgate Maximum Allowed Container Count limit applies.", "example": "IG" }, "ingateOutgateMaxDate": { "type": "string", "description": "Date on which the given Ingate Outgate Code is set.", "example": "2024-08-05" }, "containerIngateOutgateCountCode": { "type": "string", "description": "Code defining whether the given container allocation count is applicable to a customer or pool of chassis.\\nValid Values Include: P (Pool of Chassis), C (Customer).", "example": "P" }, "customer633Shipper": { "type": "string", "description": "Name of a Customer, acting as the Shipper, which has been abbreviated from the Customer's full Legal Name through the use of a standardized programmatic process.", "example": "JBHUNTRANSPO" }, "ingateOutgateTargetAllowedContainerCount": { "type": "integer", "description": "Count of maximum container allowed to either ingate or outgate at the given station for the given effective period and shipper.", "example": 270 }, "ingateOutgateCount": { "type": "integer", "description": "Count of actual containers either ingated or outgated at the given station for a day.", "example": 181 }, "lastMaintenanceTimestamp": { "type": "string", "description": "The Date, Time** with fractional seconds, and Time Zone**** when a user, system, or DBMS process initially persists (saves) any data or persists any modification to data (including a logical delete).", "example": "2024-07-27T22:03:16.705+0000" }, "lastMaintenanceId": { "type": "string", "description": "The ID of the user, system, or DBMS process that triggered the initial persistence (saving) of any data or the persistence of any modification to data (including a logical delete).", "example": "IMDPSCO2" }, "containerDestinationStation333": { "type": "string", "description": "Destination Station of outgating containers.", "example": "ANYWHERE" }, "containerDestinationStationStateCode": { "type": "string", "description": "State code in which the destination Station of outgating containers is located.", "example": "US" }, "controlFreightQuoteNumber": { "type": "string", "description": "Applicable freight rate quote number. TSS waybill supports only up to 12 characters for storing quote.", "example": "$1000.00" }, "internationalDomesticCode": { "type": "string", "description": "Code defining the originating location of the containers.\\nValid Values Include: I (International), D (Domestic), B (Both).", "example": "D" }, "truckerSCAC": { "type": "string", "description": "Company abbreviation of the trucker company.", "example": "FXFW" }, "reportFilterCode": { "type": "string", "description": "Repeat filter code. Currently when a filter is added it is good for one day only. This indicator will be used to determine if the user wants to continue to repeat the filter. Valid values are Y or N.", "example": "Y" }, "containerCalculatedLengthFeet": { "type": "string", "description": "The calculated length, in feet of Container.", "example": "28" }, "ingateHazardousMaterialProfileCode": { "type": "string", "description": "Indicates whether given container has been identified as prohibiting the ingate of hazardous material or not.\\nValid Values Are: Y (Yes), N (No).", "example": "Y" }, "ingateErrorMessageText": { "type": "string", "description": "Manually entered message describing the errors encountered while ingating the containers.", "example": "Error message" }, "intermodalPlanCode": { "type": "string", "description": "Code indicating the intermodal plan service supplied. (20=rail owned door to door service, 40=steamship stack operator owned, door to door domestic shipment, etc.) Also known as the intermodal service code.", "example": "20" }, "equipmentLoadEmptyCode": { "type": "string", "description": "Code that is used to convey whether a piece of rail conveyance equipment (i.e., a railcar) is being shipped while laden with cargo or while empty, as is the case if it does not pick up another load at its destination.\\nValid values are: L (Loaded), E (Empty), RE (Revenue Empty). For intermodal equipment a 'C' is for chassis and will not be counted as loaded or empty.", "example": "E" }, "countCumulativeTypeCode": { "type": "string", "description": "Code which identifies the type of accumulation associated with the count. Valid values include: D (this applies to a daily count), C (this applies to a cumulative count).", "example": "D" }, "createUserId": { "type": "string", "description": "The BNSF ID of the user or program that created the row. (Also known as Create User ID.)", "example": "USERID" }, "createDatetime": { "type": "string", "description": "The create timestamp. (Also known as Create Date/Time.)", "example": "2022-05-14T10:47:32.667+0000" }, "serviceLevelCode": { "type": "string", "description": "One-character code used to distinguish differently priced services BNSF provides for customers relative to volumes and other considerations. Also gives Marketing the ability to prioritize shippers within a service level based on seasonal requirements.\\nValid Values Include: R (REGULAR), S (STACK), G (GUARANTEED), W (WEEKLY), Y (EMPTY), V (STANDBY), etc..", "example": "P" }, "tofcCofcCode": { "type": "string", "description": "A code indicating TOFC(trailer on flat car) or COFC(container on flat car) movement. Also used to determine stacked/non-stacked flat cars. Values are: T (TOFC), C (COFC).", "example": "TOFC" }, "businessSubUnitCode": { "type": "string", "description": "Code defining the specific group within each profit center targeted at a specific customer group.", "example": "Group" }, "businessForecastCode": { "type": "string", "description": "Code that indicates within which Business Forecast a shipment exists.", "example": "Business Forecast" }, "intermodalHoldingCode3": { "type": "string", "description": "Code indicating intermodal handling. It is also used as the unit loading priority. H=Hot, D=Double stack. Loading priority values go from 1 (highest priority) to 9 (lowest priority).", "example": "H" }, "ingateCustomerExceptionCommentText": { "type": "string", "description": "A comment, entered by a user on why an ingate rule had a customer exception.", "example": "Comment" }, "ingateLocationExceptionCommentText": { "type": "string", "description": "A comment, entered by a user on why an ingate rule had a location exception.", "example": "Comment" }, "beneficialOwnerFullName": { "type": "string", "description": "Full name of the legal entity considered to be the owner of the goods in a shipment, the Beneficial Owner is the party on whose behalf the shipment is being handled by a third party.", "example": "John Doe" }, "basisStation": { "type": "string", "description": "The difference between a cash grain price and a futures price. Cash price at a specific 333 location minus specific futures price = BASIS", "example": "0" }, "dayOfTheWeekCode": { "type": "string", "description": "Number identifying the day of the week and used in a calculation. (1=Sunday, 2=Monday, 3=Tuesday, 4=Wednesday, 5=Thursday, 6=Friday, 7=Saturday)", "example": "7" }, "timezone": { "type": "string", "description": "Code which identifies the US (United States) Time Zone a Station is located within.", "example": "American/Chicago" } }, "nullable": false }, "nullable": false } }, "nullable": false } } } }, "400": { "description": "**Bad Request**\n\nThe request could not be understood by the server due to incorrect syntax. Do not repeat the request without modifications." }, "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**\n\nThe 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**\n\nThe 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**\n\nThe 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**\n\nThe server is acting as a gateway and cannot get a response in time for a request. Wait about one minute then try again." } }, "deprecated": false } }, "/v2/ingate/validate": { "post": { "tags": [ "Requests" ], "summary": "Validate Ingate - Returns required/missing information needed for ingate.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Gate_Move_Request" } } } }, "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "type": "object", "properties": { "httpErrors": { "type": "array", "items": { "type": "string" } }, "httpResponseCode": { "type": "number", "format": "float", "description": "Response Status of the API" } } } } } }, "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" } }, "security": [ { "Restricted": [] } ] } }, "/v1/j1-receipts": { "post": { "tags": [ "Requests" ], "summary": "J1 Receipts - Returns a list of J1 Gate Receipts.", "description": "The j1-receipts request accepts up to 100 units.", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "title": "Schema", "required": [ "unitList", "endDate", "startDate" ], "properties": { "unitList": { "$ref": "#/components/schemas/unit_list" }, "endDate": { "type": "string", "example": "2020-07-18" }, "startDate": { "type": "string", "example": "2020-07-18" }, "j1ReceiptData": { "type": "boolean", "example": false }, "j1ReceiptPdf": { "type": "boolean", "example": false } } } } } }, "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "type": "object", "title": "Schema", "properties": { "elements": { "type": "array", "title": "Elements", "items": { "$ref": "#/components/schemas/j1_receipt_response" } } } } } } }, "400": { "$ref": "#/components/responses/400" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "405": { "$ref": "#/components/responses/405" }, "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 **429 Too Many Requests** error response to the Client. Upon receiving such exceptions, the client can resubmit failed requests in a rate-limited manner, complying with the API Gateway throttle limits.\n" }, "500": { "$ref": "#/components/responses/500" }, "504": { "$ref": "#/components/responses/504" } }, "security": [ { "Restricted": [] } ] } }, "/v2/outgate": { "post": { "tags": [ "Requests" ], "summary": "Outgate - Returns way-billed units that can be registered prior to exiting at a hub facility.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Gate_Move_Request" } } } }, "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OutgateResponse" } } } }, "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" } }, "security": [ { "Restricted": [] } ] } }, "/v2/outgate/validate": { "post": { "tags": [ "Requests" ], "summary": "Validate Outgate - Returns required/missing information needed for outgate.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Gate_Move_Request" } } } }, "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OutgateResponse" } } } }, "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" } }, "security": [ { "Restricted": [] } ] } }, "/v1/pickup-number": { "post": { "tags": [ "Requests" ], "summary": "Pickup Number - Validate and/or retrieve pickup numbers.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Pickup_Number_Request" } } } }, "responses": { "200": { "description": "** No Content **\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Pickup_Number" } } } }, "400": { "$ref": "#/components/responses/400" }, "403": { "$ref": "#/components/responses/403" }, "404": { "$ref": "#/components/responses/404" }, "405": { "$ref": "#/components/responses/405" }, "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* 5 API Request Per Second, Per Partner, Per Service\n* 100 API Requests Per Minute, Per Partner, Per Service\n* 500 API Request Per Minute, Per Service\n \nWhen requests exceed these limits the API Gateway will return **429 Too Many Requests** error response to the Client. Upon receiving such exceptions, the client can resubmit failed requests in a rate-limited manner, complying with the API Gateway throttle limits.\n" }, "500": { "$ref": "#/components/responses/500" }, "504": { "$ref": "#/components/responses/504" } }, "security": [ { "Restricted": [] } ] } }, "/v1/pregate/in": { "post": { "tags": [ "Requests" ], "summary": "Pre-Ingate - Advanced creation of an ingate ahead of arriving at a hub facility.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Intermodal_Pregate" } } } }, "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "type": "object", "properties": { "railpassId": { "type": "string", "description": "RailPASS ID", "example": "12345" } } } } } }, "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" } }, "security": [ { "Restricted": [] } ] }, "delete": { "tags": [ "Requests" ], "summary": "Cancel a pre-ingate.", "parameters": [ { "name": "equipmentInitial", "in": "query", "required": true, "schema": { "type": "string", "example": "BNSF" } }, { "name": "equipmentNumber", "in": "query", "required": true, "schema": { "type": "string", "example": "12345" } }, { "name": "truckerDriverLicenseNumber", "in": "query", "required": true, "schema": { "type": "string", "example": "123456789" } }, { "name": "truckerDriverLicenseStateCode", "in": "query", "required": true, "schema": { "type": "string", "example": "TX" } } ], "responses": { "204": { "description": "** No Content **\n\nThe request has succeeded." }, "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" } }, "security": [ { "Restricted": [] } ] } }, "/v1/pregate/out": { "post": { "tags": [ "Requests" ], "summary": "Pre-Outgate - Advanced creation of an outgate ahead of exiting a hub facility.", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Intermodal_Pregate" } } } }, "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "type": "object", "properties": { "railpassId": { "type": "string", "description": "RailPASS ID", "example": "12345" } } } } } }, "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" } }, "security": [ { "Restricted": [] } ] }, "delete": { "tags": [ "Requests" ], "summary": "Cancel a pre-outgate.", "parameters": [ { "name": "equipmentInitial", "in": "query", "required": true, "schema": { "type": "string", "example": "BNSF" } }, { "name": "equipmentNumber", "in": "query", "required": true, "schema": { "type": "string", "example": "12345" } }, { "name": "truckerDriverLicenseNumber", "in": "query", "required": true, "schema": { "type": "string", "example": "123456789" } }, { "name": "truckerDriverLicenseStateCode", "in": "query", "required": true, "schema": { "type": "string", "example": "TX" } } ], "responses": { "204": { "description": "** No Content **\n\nThe request has succeeded." }, "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" } }, "security": [ { "Restricted": [] } ] } }, "/v2/street-en-route": { "post": { "tags": [ "Requests" ], "summary": "Street En-route - Report pre-arrival to hub and returns rail waybill ingate completeness check and missing elements (if any).", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Gate_Move_Request" } } } }, "responses": { "200": { "description": "**OK**\n\nThe request has succeeded.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StreetEnRouteResponse" } } } }, "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" } }, "security": [ { "Restricted": [] } ] } }, "/v3/unit-details": { "post": { "tags": [ "Requests" ], "summary": "Unit Details - Returns hub information (e.g., Lot Location) for units at a BNSF Facility (Equivalent to DLL on bnsf.com).", "description": "The unit-details request accepts up to 500 units.\n\nChangelog\n