Skip to content

docs(api): document who can access vessel endpoints - #480

Merged
dodeja merged 1 commit into
mainfrom
docs/vessel-api-access
Oct 19, 2026
Merged

dodeja merged 1 commit into
mainfrom
docs/vessel-api-access

Conversation

@dodeja

@dodeja dodeja commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Why

The vessel endpoints now enforce Routing Data on every call and only return vessels on the caller's own actively tracked shipments. The docs still said vessel lookups were open and only show_positions was paid, and they still implied a standalone location endpoint existed. Integrators hitting the new 403 and 404 responses had nothing to read.

What changed

  • Entitlements page. Added a "Vessel data access" section. It covers the 401 / 403 / 404 responses, what counts as "your" vessel, nulled position fields in included vessels and webhooks, and the removed GET /v2/vessels/{id}/location. The vessel row and the map-embed row in the overview table now match.
  • Vessel reference pages (ID and IMO). The descriptions no longer say "optional position data for paid plan accounts". Each page now has a Routing Data note that links to the new section.
  • Map embed guide. Routing Data is listed as a prerequisite, because the embed reads vessel positions with a publishable key.
  • OpenAPI. The four vessel operations get the access note in their descriptions, a 401 response (#/components/responses/Unauthorized), and the specific 403 description.
  • Generated files. I regenerated the Postman collection and sdks/typescript-sdk/src/generated/terminal49.ts from the spec.

Verification

  • node tools/generate-postman.mjs --check passes.
  • npm run agent-verify:quick passes.
  • git diff --check is clean.
  • Spectral reports 2 errors and 34 warnings, the same as on main. The two errors come from existing paths (/vessels/{id} vs /vessels/{imo}, and a custom_fields example).

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

RetriggerView in GreptileConfidence Score: 5/5

The documentation and generated updates appear safe to merge.

Summary

Documents Routing Data access and tracked-shipment limits for vessel endpoints.

  • Vessel references explain who can access each endpoint.

Reviews (1) · Last reviewed commit: "docs(api): document who can access vesse..." · Reviewed by Greptile

Every /v2/vessels endpoint now requires Routing Data and returns only
vessels on the caller's actively tracked shipments. Document the 401,
403 and 404 responses, the nulled position fields in included vessels
and webhooks, the removed /vessels/{id}/location endpoint, and that the
map embed needs Routing Data for vessel positions. Regenerate Postman
and SDK types from the spec.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@mintlify

mintlify Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
terminal49 🟢 Ready View Preview Oct 19, 2026, 8:34 PM

@vercel

vercel Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
api Ready Ready Preview Oct 19, 2026 8:34pm UTC

Request Review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-19T20:35:34.476254Z a08880d PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions Bot added risk:unknown Advisory evidence unavailable or changed; no merge permission risk-shadow:high Shadow-only risk signal: high labels Oct 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Shadow risk calibration

Signal Result Authority
Path classifier risk:high Deterministic advisory policy
heuristic fallback risk-shadow:high Shadow only

Calibration result: agreement.

Shadow risk never blocks or enables merge. Keep it in observation mode until roughly 50 pull requests have human-reviewed labels, then calibrate before considering any policy use.

@github-actions github-actions Bot added risk:high Advisory path risk; current-head human review needed and removed risk:unknown Advisory evidence unavailable or changed; no merge permission labels Oct 19, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a08880daab

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/openapi.json
},
"operationId": "get-vessels-id",
"description": "Returns a vessel by id. <Note>`show_positions` is a paid feature. Please contact sales@terminal49.com.</Note>"
"description": "Returns a vessel by id, with its current position. Add `show_positions` to include its position history. <Note>Requires the Routing Data entitlement for API keys, including publishable keys. Without it, every vessel endpoint returns `403`. Only vessels on your account's actively tracked shipments are returned; any other vessel returns `404`. See [Entitlements and Paid Features](/api-docs/useful-info/entitlements#vessel-data-access).</Note>"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Qualify the blanket 403 response claim

For callers on a free or paused plan, or those using an invalid key, this note promises that lacking Routing Data makes every vessel endpoint return 403, while the newly added access table specifies 401 for exactly those cases. Because this description is reused across all four vessel operations and their generated SDK/Postman documentation, it should say that 403 applies only when the caller has full API access but lacks Routing Data.

AGENTS.md reference: AGENTS.md:L60-L65

Useful? React with 👍 / 👎.

@dodeja
dodeja merged commit 9922cca into main Oct 19, 2026
32 of 33 checks passed
@dodeja
dodeja deleted the docs/vessel-api-access branch October 19, 2026 20:45

This branch was successfully deployed

2 active deployments
staging - docs — a08880da Deployed Oct 19, 2026 by mintlify[bot]
Preview — a08880da Deployed Oct 19, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:high Advisory path risk; current-head human review needed risk-shadow:high Shadow-only risk signal: high

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant