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

SettingNew value
EndpointPOST https://api.dockflow.com/compat/windward/graphql
CredentialA Dockflow API key, created in the API Console, in Authorization: Bearer or x-api-key
publicAPITokenTakes 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

CallWhat it does
mutation upsertTrackedShipmentsCreates or finds tracked shipments from containerNumber, bol, carrierBookingReference, scac and metadata.
mutation updateTrackedShipmentsMetadataUpdates the metadata of tracked shipments.
mutation deleteTrackedShipmentsDeactivates and removes tracked shipments.
mutation publicAPITokenReturns the verified key.
query trackedShipmentsLists tracked shipments, with limit, offset, filterBy and searchTerm.
query trackedShipmentsByIdsReads tracked shipments by id.
query carriersLists carriers.
  • Field selection, variables, fragments and validation.
  • Events: GTOT, GTIN, LOAD, DEPA, ARRI and DISC, with location roles from the transport plan.
  • metadata.jobNumber as the shipment reference, and metadata.businessData as 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.
  • filterBy conditions other than trackedShipment_id and shipment_container_number, with one value. Others answer BAD_USER_INPUT.
  • sort and orderBy are accepted and ignored.
  • sharedShipmentLink, delay.reasons, delay.podETA, vessel.flag, vessel.class and route.geojson are 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.

Book a demo

Go through your integration and the switch with the Dockflow team.

Book a demo