Port Houston

Provider Information:

Id

port_houston

Type

terminal

Trace Type

API

Credentials

Uses username and password and it is customer based and customers must request API access from Port of Houston

Limits

Maximum number of containers per request is 50
Maximum number of request call is 20k per day

Status

development

Doc Status

draft

Doc Version

1

URLs:

Type

URL

Environment

Request

https://lynxapi.porthouston.com/lynxservice.asmx/GetAvailableContainersSQL

DEV/STG/PRD

Sites:

Name

Site Id

Description

name

ern

the description

Request

POST https://lynxapi.porthouston.com/lynxservice.asmx/GetAvailableContainersSQL

Note

  • This request needs in body: username, password, terminal code, and container numbers.

  • Container numbers should be separated with commas

Terminal codes goes as follow:

Terminal Name

Terminal Code

Barbours Cut

PHABC

Bayport

PHA

headers should be as following.

Content-Type: application/x-www-form-urlencoded

body should be as following.

Body type needs to be x-www-form-urlencoded

UserName: <username>
PWD: <password>
TerminalCode: PHABC
ContainerNumber: TGBU6352241,KOCU5136383

Responses

Query Containers Request Response

If credentials of username and password are expired or they are invalid then the following response is returned.

Returned status code: 200 Ok

<?xml version="1.0" encoding="utf-8"?>
<NewDataSet>
    <Table1>
        <LoginError>Login Error</LoginError>
    </Table1>
</NewDataSet>

If TerminalCode is invalid, It returns the following response.

Returned status code: 500 Internal Server Error

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

If UserName, PWD, TerminalCode, or ContainerNumber is missing It returns the following response.

Returned status code: 500 Internal Server Error

Missing parameter: TerminalCode.

If given containers were invalid containers like Test123456 or having valid container but not found like UMXU253714 it returns the following response.

Returned status code: 200 OK

<?xml version="1.0" encoding="utf-8"?>
<NewDataSet>
    <Table1>
        <GKEY>0</GKEY>
        <STATUS>Error:  Container not found.</STATUS>
        <STATUSDETAILS>Error:  Container not found.</STATUSDETAILS>
        <OOGFL>False</OOGFL>
        <ERROR>Error:  Container not found.</ERROR>
    </Table1>
</NewDataSet>

If given containers were valid but one found (TGBU6352241) and the other is not found (UMXU253714), It returns the following response.

Returned status code: 200 OK

<?xml version="1.0" encoding="utf-8"?>
 <NewDataSet>
     <Table1>
         <GKEY>25215813</GKEY>
         <DRAFTNUMBER />
         <EQUIPMENTNBR>TGBU6352241</EQUIPMENTNBR>
         <BILLOFLADING>SZPM23657900</BILLOFLADING>
         <READYFORDELIVERY>NO</READYFORDELIVERY>
         <FREIGHT>RELEASED</FREIGHT>
         <CUSTOMS>HOLD</CUSTOMS>
         <VERIFIEDGROSSWEIGHT />
         <HOLDS>BILL OF LADING HOLD - LINE,CUSTOMS DEFAULT HOLD</HOLDS>
         <HOLD_TYPE />
         <HOLD_GKEY />
         <ROADIMPEDIMENTS>BILL OF LADING HOLD - LINE,CUSTOMS DEFAULT HOLD</ROADIMPEDIMENTS>
         <GOODTHRU />
         <DEMURRAGE />
         <LOCATION>VESSEL</LOCATION>
         <LOCATIONDETAILS>V-OXM-057W</LOCATIONDETAILS>
         <SHIPPINGLINE>HAS</SHIPPINGLINE>
         <SHIPPINGLINEDETAILS>Hyundai America Shipping</SHIPPINGLINEDETAILS>
         <VESSELVOYAGE>OXM-057W</VESSELVOYAGE>
         <EQSZ>40</EQSZ>
         <EQTP>GP</EQTP>
         <EQHT>96</EQHT>
         <DISCHARGED />
         <GROSSWEIGHT>3700.0</GROSSWEIGHT>
         <HAZ_CLASS />
         <CATEGORY>IMPRT</CATEGORY>
         <CATEGORYDETAILS>IMPRT</CATEGORYDETAILS>
         <STATUS>FCL</STATUS>
         <STATUSDETAILS>FCL</STATUSDETAILS>
         <OOGFL>false</OOGFL>
         <FROM_DATE />
         <TO_DATE />
         <OUT_TIME />
         <PORT_PTD />
         <GTD />
         <VESSEL>OXM</VESSEL>
         <VOYAGE>057E</VOYAGE>
         <PORT_LFD />
         <TRUCKER />
         <DESCRIPTION />
         <FEE_AMOUNT />
         <QUANTITY />
         <LINE_LFD />
         <ISOCODE>45G1</ISOCODE>
         <POSITION>V-OXM-057W</POSITION>
         <POL>CNYTN</POL>
         <TEMP />
         <SEAL1>211084367</SEAL1>
     </Table1>
 </NewDataSet>

Outgated Event Request Response

To get the information about whether the container is outgated or not, A request has to be sent to the given url.

POST https://lynxapi.porthouston.com/lynxservice.asmx/GetGateTransactionsSQL

headers should be as following.

Content-Type: application/x-www-form-urlencoded

body should be as following.

UserName: <username>
PWD: <password>
TerminalCode: PHABC
TransNumber:
TransType:
TransStatus:
TransFromDate:
TransToDate:
Equipment: TGBU6352241
BookNumber:
LineID:
TruckNumber:
TruckCompany: <Scac>

Note

  • This request needs in body all the above fields, however you need only (UserName, PWD, Equipment, and TruckCompany) to not be empty the rest could be empty we don’t need them with values but they are required parameters.

  • TerminalCode goes just like the availability request above.

  • Equipment filed takes only one container at a time.

If credentials of username and password are expired or they are invalid then the following response is returned.

Returned status code: 200 Ok

<?xml version="1.0" encoding="utf-8"?>
<NewDataSet>
    <Table1>
        <LoginError>Login Error</LoginError>
    </Table1>
</NewDataSet>

If TerminalCode is invalid, It returns the following response.

Returned status code: 500 Internal Server Error

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index

If any of the required parameters are missing It returns the following response.

Returned status code: 500 Internal Server Error

Missing parameter: TerminalCode.

If given container is not correct it returns the following response.

Returned status code: 200 OK

<?xml version="1.0" encoding="utf-8"?>
<RESULTS>
</RESULTS>

Response if body request has right data

Returned status code: 200 OK

<?xml version="1.0" encoding="utf-8"?>
<RESULTS>
    <TABLE>
        <TRANGKEY>18249032</TRANGKEY>
        <TRANSNBR>4995862</TRANSNBR>
        <DATETIME>2022-01-11 11:34:58.213</DATETIME>
        <TRANSTYPE>DI</TRANSTYPE>
        <TRANTYPEDESC>DI</TRANTYPEDESC>
        <STATUS>COMPLETE</STATUS>
        <TRUCKID>OXPQ</TRUCKID>
        <TRUCKINGCOMPANY>OVERLAND EXPRESS CO., INC.</TRUCKINGCOMPANY>
        <TRUCKLICENSENBR>1L41256</TRUCKLICENSENBR>
        <SHIPPINGLINE>MSC</SHIPPINGLINE>
        <CONTAINER>MSMU5099042</CONTAINER>
        <BOOKING>
    </BOOKING>
        <SEAL1>2152837</SEAL1>
        <GROSSWEIGHT>50040.0</GROSSWEIGHT>
        <CONTAINERISO>4510</CONTAINERISO>
        <ITEMISO>
    </ITEMISO>
        <EIRTIME>2022-01-11 12:25:34.303</EIRTIME>
        <CHASSISNBR>OXPQ000483</CHASSISNBR>
        <ISOWNER>true</ISOWNER>
        <VESSEL>MMT-152E</VESSEL>
        <TICKETPOS>5G74</TICKETPOS>
        <IDONBR>
    </IDONBR>
    </TABLE>
</RESULTS>
Data Mapping:

Property

Source Property

Description

container_number

EQUIPMENTNBR

The container reference number

steamshipBL

BILLOFLADING

Bill of lading

carrier.vessel

VESSEL

Carrier vessel number

carrier.voyage

VOYAGE

Carrier Voyage number

Grounded Event Response

<?xml version="1.0" encoding="utf-8"?>
<NewDataSet>
    <Table1>
        <GKEY>25107899</GKEY>
        <DRAFTNUMBER />
        <EQUIPMENTNBR>KOCU5123869</EQUIPMENTNBR>
        <BILLOFLADING>SHAZ71000100</BILLOFLADING>
        <READYFORDELIVERY>YES</READYFORDELIVERY>
        <FREIGHT>RELEASED</FREIGHT>
        <CUSTOMS>RELEASED</CUSTOMS>
        <VERIFIEDGROSSWEIGHT>7200.0 KG</VERIFIEDGROSSWEIGHT>
        <HOLDS />
        <HOLD_TYPE />
        <HOLD_GKEY />
        <ROADIMPEDIMENTS />
        <GOODTHRU>2022-01-17 07:00:00</GOODTHRU>
        <DEMURRAGE />
        <LOCATION>YARD</LOCATION>
        <LOCATIONDETAILS>Y-BCT-1I22C.1</LOCATIONDETAILS>
        <SHIPPINGLINE>HAS</SHIPPINGLINE>
        <SHIPPINGLINEDETAILS>Hyundai America Shipping</SHIPPINGLINEDETAILS>
        <VESSELVOYAGE>OUV-058W</VESSELVOYAGE>
        <EQSZ>40</EQSZ>
        <EQTP>GP</EQTP>
        <EQHT>96</EQHT>
        <DISCHARGED>2022-01-10 14:12:23.843</DISCHARGED>
        <GROSSWEIGHT>7200.0</GROSSWEIGHT>
        <HAZ_CLASS />
        <CATEGORY>IMPRT</CATEGORY>
        <CATEGORYDETAILS>IMPRT</CATEGORYDETAILS>
        <STATUS>FCL</STATUS>
        <STATUSDETAILS>FCL</STATUSDETAILS>
        <OOGFL>false</OOGFL>
        <FROM_DATE />
        <TO_DATE />
        <OUT_TIME />
        <PORT_PTD />
        <GTD />
        <VESSEL>OUV</VESSEL>
        <VOYAGE>058E</VOYAGE>
        <PORT_LFD>2022-01-17 07:00:00</PORT_LFD>
        <TRUCKER />
        <DESCRIPTION />
        <FEE_AMOUNT />
        <QUANTITY />
        <LINE_LFD />
        <ISOCODE>45G1</ISOCODE>
        <POSITION>Y-BCT-1I22C.1</POSITION>
        <POL>CNSHA</POL>
        <TEMP />
        <SEAL1>211038141</SEAL1>
    </Table1>
</NewDataSet>
Grounded Event Data Mapping:

Property

Source Property

Description

event[n].code

LOCATION

Grounded event is created if LOCATION is YARD

event[n].location.lot

POSITION

Lot of the location.

event[n].location.name

Default

BarboursCut or Bayport depending on the terminal code

event[n].location.type

Default

Terminal

event[n].date

Default

Today date is a default date

event[n].data.grounded

Default

Empty string as api does not provide a date

Lfd Event Response

<?xml version="1.0" encoding="utf-8"?>
 <NewDataSet>
     <Table1>
         <GKEY>25107900</GKEY>
         <DRAFTNUMBER />
         <EQUIPMENTNBR>SEGU5697406</EQUIPMENTNBR>
         <BILLOFLADING>SHAZ71000300</BILLOFLADING>
         <READYFORDELIVERY>YES</READYFORDELIVERY>
         <FREIGHT>RELEASED</FREIGHT>
         <CUSTOMS>RELEASED</CUSTOMS>
         <VERIFIEDGROSSWEIGHT>7685.0 KG</VERIFIEDGROSSWEIGHT>
         <HOLDS />
         <HOLD_TYPE />
         <HOLD_GKEY />
         <ROADIMPEDIMENTS />
         <GOODTHRU>2022-01-17 07:00:00</GOODTHRU>
         <DEMURRAGE />
         <LOCATION>YARD</LOCATION>
         <LOCATIONDETAILS>Y-BCT-0G82F.1</LOCATIONDETAILS>
         <SHIPPINGLINE>HAS</SHIPPINGLINE>
         <SHIPPINGLINEDETAILS>Hyundai America Shipping</SHIPPINGLINEDETAILS>
         <VESSELVOYAGE>OUV-058W</VESSELVOYAGE>
         <EQSZ>40</EQSZ>
         <EQTP>GP</EQTP>
         <EQHT>96</EQHT>
         <DISCHARGED>2022-01-10 13:50:22.297</DISCHARGED>
         <GROSSWEIGHT>7685.0</GROSSWEIGHT>
         <HAZ_CLASS />
         <CATEGORY>IMPRT</CATEGORY>
         <CATEGORYDETAILS>IMPRT</CATEGORYDETAILS>
         <STATUS>FCL</STATUS>
         <STATUSDETAILS>FCL</STATUSDETAILS>
         <OOGFL>false</OOGFL>
         <FROM_DATE />
         <TO_DATE />
         <OUT_TIME />
         <PORT_PTD />
         <GTD />
         <VESSEL>OUV</VESSEL>
         <VOYAGE>058E</VOYAGE>
         <PORT_LFD>2022-01-17 07:00:00</PORT_LFD>
         <TRUCKER />
         <DESCRIPTION />
         <FEE_AMOUNT />
         <QUANTITY />
         <LINE_LFD />
         <ISOCODE>45G1</ISOCODE>
         <POSITION>Y-BCT-0G82F.1</POSITION>
         <POL>CNSHA</POL>
         <TEMP />
         <SEAL1>211332596</SEAL1>
     </Table1>
 </NewDataSet>
Lfd Event Data Mapping:

Property

Source Property

Description

event[n].code
LINE_LFD
Lfd event is created If LINE_LFD has a value

event[n].location.lot

POSITION

Lot of the POSITION

event[n].location.name

Default

BarboursCut or Bayport depending on the terminal code

event[n].location.type

Default

Terminal

event[n].date

Default

Today date is a default date

event[n].data.lfd

LINE_LFD

Last free date for container

Released Event Response

<?xml version="1.0" encoding="utf-8"?>
 <NewDataSet>
     <Table1>
         <GKEY>25107900</GKEY>
         <DRAFTNUMBER />
         <EQUIPMENTNBR>SEGU5697406</EQUIPMENTNBR>
         <BILLOFLADING>SHAZ71000300</BILLOFLADING>
         <READYFORDELIVERY>YES</READYFORDELIVERY>
         <FREIGHT>RELEASED</FREIGHT>
         <CUSTOMS>RELEASED</CUSTOMS>
         <VERIFIEDGROSSWEIGHT>7685.0 KG</VERIFIEDGROSSWEIGHT>
         <HOLDS />
         <HOLD_TYPE />
         <HOLD_GKEY />
         <ROADIMPEDIMENTS />
         <GOODTHRU>2022-01-17 07:00:00</GOODTHRU>
         <DEMURRAGE />
         <LOCATION>YARD</LOCATION>
         <LOCATIONDETAILS>Y-BCT-0G82F.1</LOCATIONDETAILS>
         <SHIPPINGLINE>HAS</SHIPPINGLINE>
         <SHIPPINGLINEDETAILS>Hyundai America Shipping</SHIPPINGLINEDETAILS>
         <VESSELVOYAGE>OUV-058W</VESSELVOYAGE>
         <EQSZ>40</EQSZ>
         <EQTP>GP</EQTP>
         <EQHT>96</EQHT>
         <DISCHARGED>2022-01-10 13:50:22.297</DISCHARGED>
         <GROSSWEIGHT>7685.0</GROSSWEIGHT>
         <HAZ_CLASS />
         <CATEGORY>IMPRT</CATEGORY>
         <CATEGORYDETAILS>IMPRT</CATEGORYDETAILS>
         <STATUS>FCL</STATUS>
         <STATUSDETAILS>FCL</STATUSDETAILS>
         <OOGFL>false</OOGFL>
         <FROM_DATE />
         <TO_DATE />
         <OUT_TIME />
         <PORT_PTD />
         <GTD />
         <VESSEL>OUV</VESSEL>
         <VOYAGE>058E</VOYAGE>
         <PORT_LFD>2022-01-17 07:00:00</PORT_LFD>
         <TRUCKER />
         <DESCRIPTION />
         <FEE_AMOUNT />
         <QUANTITY />
         <LINE_LFD />
         <ISOCODE>45G1</ISOCODE>
         <POSITION>Y-BCT-0G82F.1</POSITION>
         <POL>CNSHA</POL>
         <TEMP />
         <SEAL1>211332596</SEAL1>
     </Table1>
 </NewDataSet>
Released Event Data Mapping:

Property

Source Property

Description

event[n].code

READYFORDELIVERY

Released event is created If
READYFORDELIVERY = ‘Yes’

event[n].location.lot

POSITION

Lot of the POSITION

event[n].location.name

Default

BarboursCut or Bayport depending on the terminal code

event[n].location.type

Default

Terminal

event[n].date

Default

Today date is a default date

event[n].data.released

Default

Empty string as api does not provide a date

Outgated Event Response

<?xml version="1.0" encoding="utf-8"?>
<RESULTS>
    <TABLE>
        <TRANGKEY>18249032</TRANGKEY>
        <TRANSNBR>4995862</TRANSNBR>
        <DATETIME>2022-01-11 11:34:58.213</DATETIME>
        <TRANSTYPE>DI</TRANSTYPE>
        <TRANTYPEDESC>DI</TRANTYPEDESC>
        <STATUS>COMPLETE</STATUS>
        <TRUCKID>OXPQ</TRUCKID>
        <TRUCKINGCOMPANY>OVERLAND EXPRESS CO., INC.</TRUCKINGCOMPANY>
        <TRUCKLICENSENBR>1L41256</TRUCKLICENSENBR>
        <SHIPPINGLINE>MSC</SHIPPINGLINE>
        <CONTAINER>MSMU5099042</CONTAINER>
        <BOOKING>
    </BOOKING>
        <SEAL1>2152837</SEAL1>
        <GROSSWEIGHT>50040.0</GROSSWEIGHT>
        <CONTAINERISO>4510</CONTAINERISO>
        <ITEMISO>
    </ITEMISO>
        <EIRTIME>2022-01-11 12:25:34.303</EIRTIME>
        <CHASSISNBR>OXPQ000483</CHASSISNBR>
        <ISOWNER>true</ISOWNER>
        <VESSEL>MMT-152E</VESSEL>
        <TICKETPOS>5G74</TICKETPOS>
        <IDONBR>
    </IDONBR>
    </TABLE>
</RESULTS>

Note

If truckingCompany is sent on the event, and availability endpoint has LOCATION = TRUCK then the outgate endpoint is called to get the outgate information. Once the outgated information is received, the outgated event is created with outgated Confirmed = True and outgated datetime value. If truckingCompany is not sent on the event and the container has location with TRUCK then the outgated event is created with outgated Confirmed = False and outgated defaulted to today.

Outgated Event Data Mapping:

Property

Source Property

Description

event[n].code

LOCATION

Outgated event is created if LOCATION is TRUCK
And we call the other endpoint for the outgate

event[n].location.name

Default

BarboursCut or Bayport depending on the terminal code

event[n].location.type

Default

Terminal

event[n].date

Default

Today date is a default date

event[n].data.outgated

DATETIME

Outgate datetime and it comes for the outgate endpoint

event[n].data.outgate_scac

TRUCKER

Trucking company name and it comes from the outgate endpoint

event[n].data.outgate_confirmed

Default

Value is set to True as the API provides the outgate information

Hold Events Response

<?xml version="1.0" encoding="utf-8"?>
<NewDataSet>
    <Table1>
        <GKEY>25280857</GKEY>
        <DRAFTNUMBER />
        <EQUIPMENTNBR>BHCU3221689</EQUIPMENTNBR>
        <BILLOFLADING>SHAZ80835000</BILLOFLADING>
        <READYFORDELIVERY>NO</READYFORDELIVERY>
        <FREIGHT>RELEASED</FREIGHT>
        <CUSTOMS>HOLD</CUSTOMS>
        <VERIFIEDGROSSWEIGHT />
        <HOLDS>BILL OF LADING HOLD - LINE,CUSTOMS DEFAULT HOLD</HOLDS>
        <HOLD_TYPE />
        <HOLD_GKEY />
        <ROADIMPEDIMENTS>BILL OF LADING HOLD - LINE,CUSTOMS DEFAULT HOLD</ROADIMPEDIMENTS>
        <GOODTHRU />
        <DEMURRAGE />
        <LOCATION>VESSEL</LOCATION>
        <LOCATIONDETAILS>V-OXM-057W</LOCATIONDETAILS>
        <SHIPPINGLINE>HAS</SHIPPINGLINE>
        <SHIPPINGLINEDETAILS>Hyundai America Shipping</SHIPPINGLINEDETAILS>
        <VESSELVOYAGE>OXM-057W</VESSELVOYAGE>
        <EQSZ>20</EQSZ>
        <EQTP>GP</EQTP>
        <EQHT>86</EQHT>
        <DISCHARGED />
        <GROSSWEIGHT>1900.0</GROSSWEIGHT>
        <HAZ_CLASS />
        <CATEGORY>IMPRT</CATEGORY>
        <CATEGORYDETAILS>IMPRT</CATEGORYDETAILS>
        <STATUS>FCL</STATUS>
        <STATUSDETAILS>FCL</STATUSDETAILS>
        <OOGFL>false</OOGFL>
        <FROM_DATE />
        <TO_DATE />
        <OUT_TIME />
        <PORT_PTD />
        <GTD />
        <VESSEL>OXM</VESSEL>
        <VOYAGE>057E</VOYAGE>
        <PORT_LFD />
        <TRUCKER />
        <DESCRIPTION />
        <FEE_AMOUNT />
        <QUANTITY />
        <LINE_LFD />
        <ISOCODE>22G1</ISOCODE>
        <POSITION>V-OXM-057W</POSITION>
        <POL>CNSHA</POL>
        <TEMP />
        <SEAL1>211612319</SEAL1>
    </Table1>
</NewDataSet>
Hold Events:

Property

Source Property

Description

event[n].code

Default

Hold as it is hold event

event[n].location.name

Default

BarboursCut or Bayport depending on the terminal code

event[n].location.type

Default

Terminal

event[n].date

Default

Today date is a default date

event[n].holdType

hold_information.hold_id

HoldType can be: Custom if HOLDS has Customs. Line if HOLDS has Line. Demurrage if DEMURRAGE is hold.

event[n].data.code

hold_information.hold_id

hold_id determine code and it can be: Custom Hold. Demurrage Hold. Line Hold.