Zencargo

Zencargo is a digital freight forwarder and supply-chain visibility platform for ocean, air, road, and rail shipments. Its GraphQL API gives enterprise customers programmatic access to bookings, shipment tracking and voyage milestones, purchase orders, products, packing lists, and accounts, plus HTTP webhooks for booking and purchase-order events. The API is customer-provisioned - each account is issued a dedicated staging and production endpoint and API-key credentials by their Zencargo account manager.

Zencargo publishes 7 APIs on the APIs.io network. Tagged areas include Freight Forwarding, Supply Chain, Logistics, Ocean Freight, and Shipment Tracking.

Zencargo’s developer surface includes authentication, documentation, engineering blog, and 7 more developer resources.

21.7/100 emerging ▬ flat Agent 16/100 agent aware Full breakdown ↓
scored 2026-07-20 · rubric v0.4
7 APIs 0 Features
Freight ForwardingSupply ChainLogisticsOcean FreightShipment TrackingBookingsSupply Chain VisibilityFreightSaaSGraphQL

API Rating

API Evangelist API Evangelist Rating How this is scored →
scored 2026-07-20 · rubric v0.4
Composite quality — 21.7/100 · emerging
Contract Quality 0.0 / 25
Developer Ergonomics 4.3 / 20
Commercial Clarity 5.8 / 20
Operational Transparency 4.8 / 13
Governance 0.0 / 12
Discoverability 6.8 / 10
Agent readiness — 16/100 · agent aware
Machine-Readable Contract 0 / 18
Agentic Access Contract 0 / 15
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/zencargo: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs

Zencargo Bookings API

Query bookings by Zencargo reference and retrieve booking details: cargo, consignor/consignee, forwarder, incoterms, load type, mode of transport, bills of lading, required deli...

Zencargo Shipment Visibility API

Track shipment progress through scheduled carriage legs, cargo journey details (estimated/actual collection and delivery), and voyage milestones (collected, gate in, cargo aboar...

Zencargo Purchase Orders API

Create, query, update, close, and delete purchase orders and their ordered line items and SKU-level Lots. Keeps an ERP in sync with Zencargo as the source of truth for pre-booki...

Zencargo Products API

Manage the product catalog - create, query, update, archive, and unarchive products (and core products with characteristics, dimensions, weights, tariff codes, and pricing), plu...

Zencargo Packing Lists API

Query packing lists for a booking (BOOKING_REFERENCE) or a specific cargo (CARGO_ID), returning per-container lines with the Lot and Product behind each packed item. Available f...

Zencargo Accounts and Locations API

Retrieve account details by UUID and search assignable accounts (customers, suppliers, manufacturers) and their locations to resolve the origin, destination, and manufacturer ID...

Zencargo Webhooks

Outbound HTTP webhooks. Zencargo POSTs a JSON payload (topic, targetType, targetId) to a customer-registered HTTPS callback URL when events such as BOOKING_CREATED occur, signed...

Collections

Pricing Plans

Zencargo Plans Pricing

1 plans

PLANS

Rate Limits

Zencargo Rate Limits

4 limits

RATE LIMITS

FinOps

Resources

Documentation 1

Reference material describing how the API behaves

Build 1

SDKs, sample code, and the tooling you integrate with

Access & Security 2

Authentication, authorization, and security posture

Operate 1

Status, limits, changes, and where to get help

Commercial 2

Pricing, plans, and the legal terms of use

Company 3

The organization behind the API

Source (apis.yml)

apis.yml Raw ↑
opencollection: 1.0.0
info:
  name: Zencargo GraphQL API
  version: '1.0'
  description: Zencargo digital freight forwarding & supply-chain GraphQL API. All operations are POST requests to a single
    per-tenant endpoint (https://{accountReference}.api.{environment}.zencargo.com/graphql), authenticated with HTTP Basic
    using an API Key ID and secret. Operations are grounded in the public docs at https://api-docs.zencargo.com.
request:
  auth:
    type: basic
    username: '{{apiKeyId}}'
    password: '{{apiKeySecret}}'
items:
- info:
    name: Bookings
    type: folder
  items:
  - info:
      name: Query booking documents by reference
      type: http
    http:
      method: POST
      url: https://{{accountReference}}.api.{{environment}}.zencargo.com/graphql
      body:
        type: json
        data: "{\n  \"query\": \"query($zencargoReferences: [String!]) { bookings(zencargoReferences: $zencargoReferences)\
          \ { nodes { zencargoReference bookingDocuments { documentType description assetUrl } } } }\",\n  \"variables\":\
          \ { \"zencargoReferences\": [\"ZTEST-1\"] }\n}"
    docs: Fetch a booking and its attached documents (assetUrl is the download link).
  - info:
      name: Query booking cargo and parties
      type: http
    http:
      method: POST
      url: https://{{accountReference}}.api.{{environment}}.zencargo.com/graphql
      body:
        type: json
        data: "{\n  \"query\": \"query($zencargoReferences: [String!]) { bookings(zencargoReferences: $zencargoReferences)\
          \ { nodes { zencargoReference modeOfTransport loadType incoterms { value } consignor { label { long } } consignee\
          \ { label { long } } } } }\",\n  \"variables\": { \"zencargoReferences\": [\"ZTEST-1\"] }\n}"
    docs: Retrieve mode of transport, load type, incoterms, and parties for a booking.
- info:
    name: Shipment Visibility
    type: folder
  items:
  - info:
      name: Query scheduled legs and voyage milestone
      type: http
    http:
      method: POST
      url: https://{{accountReference}}.api.{{environment}}.zencargo.com/graphql
      body:
        type: json
        data: "{\n  \"query\": \"query($zencargoReferences: [String!]) { bookings(zencargoReferences: $zencargoReferences)\
          \ { nodes { scheduledLegs { modeOfTransport fromTerminal { name } toTerminal { name } estimatedDepartureDate estimatedArrivalDate\
          \ } voyageMilestone { name occurred latestEstimate vesselName } } } }\",\n  \"variables\": { \"zencargoReferences\"\
          : [\"ZTEST-1\"] }\n}"
    docs: Track shipment progress via scheduled legs and the current voyage milestone.
  - info:
      name: Query cargo journey details
      type: http
    http:
      method: POST
      url: https://{{accountReference}}.api.{{environment}}.zencargo.com/graphql
      body:
        type: json
        data: "{\n  \"query\": \"query($zencargoReferences: [String!]) { bookings(zencargoReferences: $zencargoReferences)\
          \ { nodes { cargoJourneyDetails { cargoId estimatedCollectionDateTime actualCollectionDateTime estimatedDeliveryDateTime\
          \ actualDeliveryDateTime } } } }\",\n  \"variables\": { \"zencargoReferences\": [\"ZTEST-1\"] }\n}"
    docs: Estimated vs. actual collection and delivery per cargo.
- info:
    name: Purchase Orders
    type: folder
  items:
  - info:
      name: Create a purchase order
      type: http
    http:
      method: POST
      url: https://{{accountReference}}.api.{{environment}}.zencargo.com/graphql
      body:
        type: json
        data: "{\n  \"query\": \"mutation($input: CreateOrderInput!) { purchaseOrdersCreateOrder(input: $input) { purchaseOrder\
          \ { orderReferenceNumber } errors { path message } } }\",\n  \"variables\": { \"input\": { \"orderReferenceNumber\"\
          : \"PO-SEAWARD-2\", \"orderDate\": \"2021-01-01\", \"orderedLineItems\": [ { \"productSku\": \"10000\", \"quantityOrdered\"\
          : 10000, \"cbm\": 32.0, \"initialCargoReadyDate\": \"2020-03-16\", \"requiredDeliveryDate\": \"2020-05-04\" } ]\
          \ } }\n}"
    docs: Create a purchase order with ordered line items (PurchaseOrdersCreateOrder mutation).
  - info:
      name: Query a purchase order
      type: http
    http:
      method: POST
      url: https://{{accountReference}}.api.{{environment}}.zencargo.com/graphql
      body:
        type: json
        data: "{\n  \"query\": \"query($ref: String!) { purchaseOrder(orderReferenceNumber: $ref) { orderReferenceNumber orderedLineItems\
          \ { product { skuCode } quantityOrdered lots { quantityFulfilled cargoReadyDate { date } } } } }\",\n  \"variables\"\
          : { \"ref\": \"PO-SEAWARD-2\" }\n}"
    docs: Retrieve a purchase order with its line items and SKU-level Lots.
- info:
    name: Products
    type: folder
  items:
  - info:
      name: Query products (SKU codes)
      type: http
    http:
      method: POST
      url: https://{{accountReference}}.api.{{environment}}.zencargo.com/graphql
      body:
        type: json
        data: "{\n  \"query\": \"query { products(first: 20) { nodes { name skuCode } } }\"\n}"
    docs: List products and their SKU codes (the documented first-call example).
  - info:
      name: Create a core product
      type: http
    http:
      method: POST
      url: https://{{accountReference}}.api.{{environment}}.zencargo.com/graphql
      body:
        type: json
        data: "{\n  \"query\": \"mutation($input: CreateCoreProductInput!) { createCoreProduct(input: $input) { coreProduct\
          \ { id skuCode } errors { path message } } }\",\n  \"variables\": { \"input\": { \"name\": \"Frozen Banana\", \"\
          skuCode\": \"10000\" } }\n}"
    docs: Create a core product (createCoreProduct mutation).
- info:
    name: Packing Lists
    type: folder
  items:
  - info:
      name: Query packing lists for a booking
      type: http
    http:
      method: POST
      url: https://{{accountReference}}.api.{{environment}}.zencargo.com/graphql
      body:
        type: json
        data: "{\n  \"query\": \"query($findBy: PackingListFindBy!) { packingLists(findBy: $findBy) { nodes { cargo { grossWeight\
          \ { value unit } } lines { quantity lot { product { skuCode } } } } } }\",\n  \"variables\": { \"findBy\": { \"\
          key\": \"BOOKING_REFERENCE\", \"value\": \"ZTEST-1\" } }\n}"
    docs: Query packing lists for a booking (BOOKING_REFERENCE) or a cargo (CARGO_ID).
- info:
    name: Accounts & Locations
    type: folder
  items:
  - info:
      name: Query account with products
      type: http
    http:
      method: POST
      url: https://{{accountReference}}.api.{{environment}}.zencargo.com/graphql
      body:
        type: json
        data: "{\n  \"query\": \"query { account(uuid: \\\"a7353774-9795-434b-a1f8-7582b6afd345\\\") { label { long } products(first:\
          \ 5) { nodes { name skuCode } } } }\"\n}"
    docs: Retrieve an account by UUID with a nested products connection.
  - info:
      name: Search assignable accounts
      type: http
    http:
      method: POST
      url: https://{{accountReference}}.api.{{environment}}.zencargo.com/graphql
      body:
        type: json
        data: "{\n  \"query\": \"query($accountId: String!, $filters: SearchAssignableAccountsFiltersInput!) { searchAssignableAccounts(accountId:\
          \ $accountId, searchAssignableAccountsFiltersInput: $filters) { nodes { account { label { long } } connectionType\
          \ } } }\",\n  \"variables\": { \"accountId\": \"a7353774-9795-434b-a1f8-7582b6afd345\", \"filters\": { \"accountTypes\"\
          : [\"SUPPLIER\"] } }\n}"
    docs: Search assignable accounts (e.g. suppliers) to resolve origin/destination/manufacturer IDs.
bundled: true