Compatible with Windward
Dockflow serves a GraphQL API in the shape of the Windward ocean tracking API. A client switches by changing its endpoint URL and the value of its credential.
What changes
| Setting | New value |
|---|---|
| Endpoint | POST https://api.dockflow.com/compat/windward/graphql |
| Credential | A Dockflow API key, created in the API Console, in Authorization: Bearer or x-api-key |
publicAPIToken | Takes the same key as clientSecret, verifies it and returns it. clientId is ignored. |
Operations, inputs and selected fields keep the shape of the schema.
The first migration to this API runs together with Dockflow.
What is covered
| Call | What it does |
|---|---|
mutation upsertTrackedShipments | Creates or finds tracked shipments from containerNumber, bol, carrierBookingReference, scac and metadata. |
mutation updateTrackedShipmentsMetadata | Updates the metadata of tracked shipments. |
mutation deleteTrackedShipments | Deactivates and removes tracked shipments. |
mutation publicAPIToken | Returns the verified key. |
query trackedShipments | Lists tracked shipments, with limit, offset, filterBy and searchTerm. |
query trackedShipmentsByIds | Reads tracked shipments by id. |
query carriers | Lists carriers. |
- Field selection, variables, fragments and validation.
- Events:
GTOT,GTIN,LOAD,DEPA,ARRIandDISC, with location roles from the transport plan. metadata.jobNumberas the shipment reference, andmetadata.businessDataas custom references.- Input and execution errors in
errors[]on HTTP 200. - A webhook body in the same record shape.
What is not covered
- Vessel screening, company screening, D&D and early detection operations. These fail validation.
filterByconditions other thantrackedShipment_idandshipment_container_number, with one value. Others answerBAD_USER_INPUT.sortandorderByare accepted and ignored.sharedShipmentLink,delay.reasons,delay.podETA,vessel.flag,vessel.classandroute.geojsonare empty.- Ids issued by Windward. These do not resolve, so open shipments are upserted again.
Request example
curl -X POST https://api.dockflow.com/compat/windward/graphql \
-H "Authorization: Bearer $DOCKFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "mutation U($s: [TrackedShipmentInput!]!) { upsertTrackedShipments(shipments: $s) { id metadata { jobNumber } } }",
"variables": {"s": [{"containerNumber": "CSQU3054383", "metadata": {"jobNumber": "PO-1001"}}]}
}'
Documentation
The mapping of fields and events is in the Windward migration guide.
Other compatible APIs: ShipsGo, project44, Cargoes Flow.