Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
7ce9747
docs: add Trade Intelligence endpoints to the API reference
dodeja Oct 9, 2026
6814a3c
feat(sdk): add tradeIntel namespace for trade intelligence
dodeja Oct 9, 2026
224a945
docs: state the real commodity ordering in trade intelligence lookups
dodeja Oct 9, 2026
50e3e19
docs: mark always-returned trade intelligence response fields required
dodeja Oct 9, 2026
b92cabe
chore(sdk): regenerate types and reference for required response fields
dodeja Oct 9, 2026
33243ba
docs: restrict trade intelligence month fields to real calendar months
dodeja Oct 9, 2026
bd132f7
feat(mcp): trade intelligence tools (#417)
dodeja Oct 17, 2026
d16296f
chore: regenerate SDK types, SDK reference docs, and Postman collection
dodeja Oct 17, 2026
24c7640
docs: state which trade intelligence dimensions can't be combined
dodeja Oct 17, 2026
93654df
docs: merge trade intelligence responses into the shared responses block
dodeja Oct 17, 2026
cf9d371
fix(sdk): let tradeIntel calls infer their types from the spec
dodeja Oct 17, 2026
14a56dd
chore: regenerate SDK types, SDK reference docs, and Postman collection
dodeja Oct 17, 2026
341b2ca
docs: require exact-length trade intelligence state, SCAC and HS4 codes
dodeja Oct 17, 2026
4ef87b3
fix(sdk): keep the RetryInterceptor doc comment on the class
dodeja Oct 17, 2026
d373720
chore: regenerate SDK reference docs and Postman collection
dodeja Oct 17, 2026
7f4fb93
Merge origin/main into feat/trade-intel-sdk
dodeja Oct 17, 2026
55603b0
chore: Auto-generate Postman collection from openapi.json [skip ci]
github-actions[bot] Oct 17, 2026
b9e6ca7
docs(mcp): say estimated_value is not available by lane
dodeja Oct 17, 2026
803466b
fix(mcp): warn that estimated_value is not available by lane
dodeja Oct 17, 2026
881e9c1
docs(mcp): count all 21 tools in the README, overview and setup guide
dodeja Oct 17, 2026
8cb6d1c
test(mcp): keep documented tool counts and the README table on tools/…
dodeja Oct 17, 2026
88cb9e8
test(mcp): require the lane-filter case in the estimated_value warning
dodeja Oct 17, 2026
67c21f0
test(mcp): pin the trade trends and breakdown default windows
dodeja Oct 17, 2026
be31631
docs(trade-intel): state the trends and breakdown default windows exa…
dodeja Oct 17, 2026
99d98b0
chore: Auto-generate Postman collection from openapi.json [skip ci]
github-actions[bot] Oct 17, 2026
f8e9abf
fix(mcp,sdk): describe the trade default windows as the API computes …
dodeja Oct 17, 2026
f88bae9
docs(openapi): match the trade intelligence contract to what the serv…
dodeja Oct 17, 2026
ea7e9a9
fix(sdk): type trade intelligence nulls and keep retries within maxRe…
dodeja Oct 17, 2026
c88f4b6
chore: Auto-generate Postman collection from openapi.json [skip ci]
github-actions[bot] Oct 17, 2026
ccf71a5
fix(mcp): read the trade index dates the service actually sends
dodeja Oct 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5,731 changes: 5,092 additions & 639 deletions Terminal49-API.postman_collection.json

Large diffs are not rendered by default.

86 changes: 85 additions & 1 deletion chatgpt-app-submission.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"app_info": {
"display_name": "Terminal49",
"subtitle": "Track shipping containers",
"description": "Terminal49 helps users find and monitor ocean shipments and containers, filter and count their container worklists (by status, terminal, carrier, holds, last free day, arrival, or company), inspect routes and transport events, check supported shipping lines, and create new tracking requests through ChatGPT.",
"description": "Terminal49 helps users find and monitor ocean shipments and containers, filter and count their container worklists (by status, terminal, carrier, holds, last free day, arrival, or company), inspect routes and transport events, check supported shipping lines, create new tracking requests, and, where trade intelligence is enabled, research US ocean import markets (importers, products, origins, ports, and carriers) through ChatGPT.",
"category": "BUSINESS"
},
"tools": {
Expand Down Expand Up @@ -175,6 +175,90 @@
"open_world_justification": "Reads the connected Terminal49 account only and does not change any external system.",
"destructive_justification": "Does not delete, overwrite, revoke access, or perform irreversible actions."
}
},
"search_importers": {
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
},
"justifications": {
"read_only_justification": "Searches US import market data for importers by name or product without modifying records.",
"open_world_justification": "Reads Terminal49's own trade intelligence data; does not publish content or change public or third-party systems.",
"destructive_justification": "Does not delete, overwrite, revoke access, or perform irreversible actions."
}
},
"get_importer_profile": {
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
},
"justifications": {
"read_only_justification": "Reads one importer's US import history from market data without modifying records.",
"open_world_justification": "Reads Terminal49's own trade intelligence data; does not publish content or change public or third-party systems.",
"destructive_justification": "Does not delete, overwrite, revoke access, or perform irreversible actions."
}
},
"search_commodities": {
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
},
"justifications": {
"read_only_justification": "Looks up product codes in US import market data without modifying records.",
"open_world_justification": "Reads Terminal49's own trade intelligence data; does not publish content or change public or third-party systems.",
"destructive_justification": "Does not delete, overwrite, revoke access, or perform irreversible actions."
}
},
"rank_importers": {
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
},
"justifications": {
"read_only_justification": "Ranks importers in US import market data without modifying records.",
"open_world_justification": "Reads Terminal49's own trade intelligence data; does not publish content or change public or third-party systems.",
"destructive_justification": "Does not delete, overwrite, revoke access, or perform irreversible actions."
}
},
"get_trade_trends": {
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
},
"justifications": {
"read_only_justification": "Reads US import volume time series without modifying records.",
"open_world_justification": "Reads Terminal49's own trade intelligence data; does not publish content or change public or third-party systems.",
"destructive_justification": "Does not delete, overwrite, revoke access, or perform irreversible actions."
}
},
"get_trade_breakdown": {
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
},
"justifications": {
"read_only_justification": "Reads US import volume totals by dimension without modifying records.",
"open_world_justification": "Reads Terminal49's own trade intelligence data; does not publish content or change public or third-party systems.",
"destructive_justification": "Does not delete, overwrite, revoke access, or perform irreversible actions."
}
},
"get_trade_data_coverage": {
"annotations": {
"readOnlyHint": true,
"openWorldHint": false,
"destructiveHint": false
},
"justifications": {
"read_only_justification": "Reads the coverage dates of the US import market data without modifying records.",
"open_world_justification": "Reads Terminal49's own trade intelligence data; does not publish content or change public or third-party systems.",
"destructive_justification": "Does not delete, overwrite, revoke access, or perform irreversible actions."
}
}
},
"test_cases": [
Expand Down
12 changes: 10 additions & 2 deletions claude-connector-submission.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"listing": {
"name": "Terminal49",
"tagline": "Track ocean shipments",
"description": "Terminal49 helps users find and monitor ocean shipments and containers, filter and count their container worklists (by status, terminal, carrier, holds, last free day, arrival, or company), inspect routes and transport events, check supported shipping lines, and create new tracking requests.",
"description": "Terminal49 helps users find and monitor ocean shipments and containers, filter and count their container worklists (by status, terminal, carrier, holds, last free day, arrival, or company), inspect routes and transport events, check supported shipping lines, create new tracking requests, and, where trade intelligence is enabled, research US ocean import markets (importers, products, origins, ports, and carriers).",
"categories": [
"Business"
],
Expand All @@ -25,14 +25,21 @@
"get_container",
"get_container_route",
"get_container_transport_events",
"get_importer_profile",
"get_shipment_details",
"get_supported_shipping_lines",
"get_trade_breakdown",
"get_trade_data_coverage",
"get_trade_trends",
"list_containers",
"list_parties",
"list_shipments",
"list_tracking_requests",
"rank_importers",
"search_commodities",
"search_container",
"search_docs",
"search_importers",
"summarize_containers",
"track_container",
"whoami"
Expand All @@ -50,7 +57,8 @@
"Filter and count container worklists by status, terminal, carrier, holds, last free day, or company",
"Inspect routes and transport events",
"Check supported shipping lines",
"Create new tracking requests"
"Create new tracking requests",
"Research US ocean import markets: importers, products, origin countries, ports, and carriers"
]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: "Get an import breakdown"
description: "Get nested totals with subtotals at every level of a dimension hierarchy such as region, country, and port, or HS chapter and heading."
og:title: Import Breakdown | Terminal49 API Documentation
og:description: Break US ocean imports down by region, country, port, carrier, or HS code with Terminal49's trade intelligence API.
openapi: post /trade_intel/breakdown
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: "Get an importer profile"
description: "Get one importer's monthly container history, ports of discharge, origin countries, carriers, destination states, and HS4 commodities from US import bill-of-lading records."
og:title: Importer Profile | Terminal49 API Documentation
og:description: Pull an importer's monthly ocean import history and trade lanes with Terminal49's trade intelligence API.
openapi: post /trade_intel/companies/profile
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: "Get import trends"
description: "Get monthly, quarterly, or yearly series of containers, TEUs, or estimated value, split by up to two dimensions and filtered by company, commodity, lane, or carrier."
og:title: Import Trends | Terminal49 API Documentation
og:description: Chart US ocean import trends by commodity, origin, port, carrier, or company with Terminal49's trade intelligence API.
openapi: post /trade_intel/trends
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: "Get trade intelligence coverage"
description: "Return the window, history start, partial month, and build time of Terminal49 trade intelligence, built from US import bill-of-lading records."
og:title: Trade Intelligence Coverage | Terminal49 API Documentation
og:description: Check the coverage window and freshness of Terminal49 trade intelligence before quoting import volumes.
openapi: get /trade_intel/meta
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: "Look up a bill of lading"
description: "Get the import record for a master or house bill of lading from US Customs manifests: containers, consignee, shipper, notify party, and commodity lines."
og:title: Bill of Lading Import Record | Terminal49 API Documentation
og:description: Look up a bill of lading's containers, parties, and commodity lines with Terminal49's trade intelligence API.
openapi: post /trade_intel/bills_of_lading/lookup
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: "Look up a container's import record"
description: "Get the most recent US import of a container from US Customs manifests: bills of lading, carrier, vessel, ports, destination, parties, and commodity lines."
og:title: Container Import Record | Terminal49 API Documentation
og:description: Look up a container's most recent US import, its bills of lading, parties, and commodities with Terminal49's trade intelligence API.
openapi: post /trade_intel/containers/lookup
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: "Rank importers"
description: "Rank US importers by physical containers for an HS4 heading, port of discharge, or origin country over full calendar months."
og:title: Top US Importers | Terminal49 API Documentation
og:description: Rank the largest US importers of a commodity, through a port, or from a country with Terminal49's trade intelligence API.
openapi: post /trade_intel/importers/top
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: "Search commodities"
description: "Resolve a product description or HS code prefix to 4-digit HS headings with common goods, estimated import value, and importer counts."
og:title: Search Commodities | Terminal49 API Documentation
og:description: Find the HS4 heading for a product and see what is declared under it with Terminal49's trade intelligence API.
openapi: post /trade_intel/commodities/search
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: "Search importers"
description: "Find US importers by name or by what they import, with 12-month container volumes, TEUs, estimated value, and top ports, origins, carriers, and commodities."
og:title: Search US Importers | Terminal49 API Documentation
og:description: Search US importers by company name or product using Terminal49's trade intelligence API, built from US Customs manifests.
openapi: post /trade_intel/companies/search
---
2 changes: 1 addition & 1 deletion docs/api-docs/in-depth-guides/mcp.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ Once configured, verify everything works:
<Step title="Ask Claude to list tools">
> "List the tools available in the Terminal49 MCP server."

Claude should respond with a list of 14 tools including `search_container`, `track_container`, and list tools.
Claude should respond with a list of 21 tools including `search_container`, `track_container`, the list tools, and the trade intelligence tools.
</Step>
<Step title="Search for a test container">
> "Using the Terminal49 MCP server, search for container TCLU1234567 and summarize its status."
Expand Down
38 changes: 37 additions & 1 deletion docs/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,21 @@
"api-docs/api-reference/account/get-the-current-credential"
]
},
{
"group": "Trade Intelligence",
"icon": "chart-line",
"pages": [
"api-docs/api-reference/trade-intelligence/get-trade-intelligence-coverage",
"api-docs/api-reference/trade-intelligence/search-importers",
"api-docs/api-reference/trade-intelligence/get-an-importer-profile",
"api-docs/api-reference/trade-intelligence/search-commodities",
"api-docs/api-reference/trade-intelligence/rank-importers",
"api-docs/api-reference/trade-intelligence/get-import-trends",
"api-docs/api-reference/trade-intelligence/get-an-import-breakdown",
"api-docs/api-reference/trade-intelligence/look-up-a-containers-import-record",
"api-docs/api-reference/trade-intelligence/look-up-a-bill-of-lading"
]
},
{
"group": "Shipping Lines",
"icon": "ship",
Expand Down Expand Up @@ -440,18 +455,39 @@
"sdk/reference/client/managers/classes/ShipmentManager",
"sdk/reference/client/managers/classes/ShippingLineManager",
"sdk/reference/client/managers/classes/TrackingRequestManager",
"sdk/reference/client/managers/classes/TradeIntelManager",
"sdk/reference/client/managers/interfaces/ContainerAddPartyRoleParams",
"sdk/reference/client/managers/interfaces/CreateDocumentParams",
"sdk/reference/client/managers/interfaces/CreateTrackingRequestFromInferOptions",
"sdk/reference/client/managers/interfaces/DocumentListFilters",
"sdk/reference/client/managers/interfaces/ShipmentAddPartyRoleParams",
"sdk/reference/client/managers/interfaces/TrackingRequestListFilters",
"sdk/reference/client/managers/interfaces/UpdateDocumentParams",
"sdk/reference/client/managers/interfaces/TradeIntelBillOfLadingLookupOptions",
"sdk/reference/client/managers/type-aliases/ContainerUpdateAttributes",
"sdk/reference/client/managers/type-aliases/DocumentRotation",
"sdk/reference/client/managers/type-aliases/ShipmentUpdateAttributes",
"sdk/reference/client/managers/type-aliases/TrackingRequestType",
"sdk/reference/client/managers/type-aliases/TrackingRequestUpdateAttributes"
"sdk/reference/client/managers/type-aliases/TrackingRequestUpdateAttributes",
"sdk/reference/client/managers/type-aliases/TradeIntelBillOfLadingLookup",
"sdk/reference/client/managers/type-aliases/TradeIntelBreakdown",
"sdk/reference/client/managers/type-aliases/TradeIntelBreakdownRequest",
"sdk/reference/client/managers/type-aliases/TradeIntelCommoditySearchRequest",
"sdk/reference/client/managers/type-aliases/TradeIntelCommoditySearchResponse",
"sdk/reference/client/managers/type-aliases/TradeIntelCompanyProfile",
"sdk/reference/client/managers/type-aliases/TradeIntelCompanyProfileRequest",
"sdk/reference/client/managers/type-aliases/TradeIntelCompanySearchRequest",
"sdk/reference/client/managers/type-aliases/TradeIntelCompanySearchResponse",
"sdk/reference/client/managers/type-aliases/TradeIntelCompanySearchResult",
"sdk/reference/client/managers/type-aliases/TradeIntelContainerLookup",
"sdk/reference/client/managers/type-aliases/TradeIntelDimension",
"sdk/reference/client/managers/type-aliases/TradeIntelFilters",
"sdk/reference/client/managers/type-aliases/TradeIntelMeasure",
"sdk/reference/client/managers/type-aliases/TradeIntelMeta",
"sdk/reference/client/managers/type-aliases/TradeIntelTopImporters",
"sdk/reference/client/managers/type-aliases/TradeIntelTopImportersRequest",
"sdk/reference/client/managers/type-aliases/TradeIntelTrends",
"sdk/reference/client/managers/type-aliases/TradeIntelTrendsRequest"
]
},
{
Expand Down
Loading
Loading