Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Cargo Self-Service API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fcarus.com%2Fcarus" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fcarus.com%2Fcarus" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Cargo Self-Service API.
Search cargo availability for a departure and journey
Create and read bookings on a departure
Create, update, and remove cargo units on a booking
List scheduled departures and their journeys
List reference data such as ports and journeys
GET STARTED
Patterns agents use Cargo Self-Service API for, with concrete tasks.
★ AI agent cargo booking
An AI agent in a freight-planning workflow can check space and book cargo on a sailing on demand. Through Jentic the agent searches by intent and the OAuth2 token never enters its prompt context, so a logistics assistant can search availability and create a booking without a hand-built integration.
Use Jentic to search 'search cargo availability', call POST /cargo-self-service/v1/availability-search/departures/{departureCode}/{journeyCode}, then POST /cargo-self-service/v1/departures/{departureCode}/{journeyCode}/bookings to book the space.
Booking management
After a booking is made, plans change and the cargo units on it need updating. The agent reads a booking by its code and adds, updates, or removes units, keeping the booked cargo accurate up to sailing.
Read a booking via GET /cargo-self-service/v1/bookings/{bookingCode}, then create a unit with POST /cargo-self-service/v1/units and update it with PUT /cargo-self-service/v1/units/{vehicleUnitNumber}.
Departure planning
A planning agent surfaces which sailings are available for a route before booking. It lists departures and reads a specific departure and journey, giving a scheduling assistant the options to present to a customer.
List sailings via GET /cargo-self-service/v1/departures, then read one with GET /cargo-self-service/v1/departures/{departureCode}/{journeyCode}.
Reference data lookup
Building a valid booking needs reference data like ports and journeys. The agent lists the ports Carus serves and the available journeys, so a routing workflow composes bookings against real codes rather than guessing.
List ports with GET /cargo-self-service/v1/ports and journeys with GET /cargo-self-service/v1/journeys to build a valid booking.
45 endpoints — the cargo self-service api books and manages freight on carus ferry departures.
METHOD
PATH
DESCRIPTION
/cargo-self-service/v1/availability-search/departures/{departureCode}/{journeyCode}
Search cargo availability for a departure and journey
/cargo-self-service/v1/departures/{departureCode}/{journeyCode}/bookings
List bookings on a departure
/cargo-self-service/v1/departures/{departureCode}/{journeyCode}/bookings
Create a booking on a departure
/cargo-self-service/v1/bookings/{bookingCode}
Read a booking by code
/cargo-self-service/v1/bookings/{bookingCode}
Update a booking by code
/cargo-self-service/v1/units
List cargo units
/cargo-self-service/v1/units
Create a cargo unit
/cargo-self-service/v1/units/{vehicleUnitNumber}
Update a cargo unit
/cargo-self-service/v1/departures
List scheduled departures
/cargo-self-service/v1/ports
List ports
/cargo-self-service/v1/availability-search/departures/{departureCode}/{journeyCode}
Search cargo availability for a departure and journey
/cargo-self-service/v1/departures/{departureCode}/{journeyCode}/bookings
List bookings on a departure
/cargo-self-service/v1/departures/{departureCode}/{journeyCode}/bookings
Create a booking on a departure
/cargo-self-service/v1/bookings/{bookingCode}
Read a booking by code
/cargo-self-service/v1/bookings/{bookingCode}
Update a booking by code
/cargo-self-service/v1/units
List cargo units
/cargo-self-service/v1/units
Create a cargo unit
What agents get from Jentic-routed access to this vendor.
Setup
Wiring the Cargo Self-Service API by hand means running its OAuth2 flow against api-prod-rec.carus.com and encoding the availability, booking, and unit calls yourself. Through Jentic you install once, import it from the API Directory, store the credential once, and your agent calls it.
Permission scoping
The API puts the departure, journey, and booking codes in the URL path (/cargo-self-service/v1/bookings/{bookingCode}), so a rule can pin your agent to a route or booking. You choose the operations it may call, so creating or updating a booking is not included unless you add it.
Credential isolation
Your Carus OAuth2 token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'search cargo availability' or 'create a booking', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using Cargo Self-Service API through Jentic.
Is there a Cargo Self-Service API MCP server?
You don't need an MCP server to give your agent Carus. Jentic connects it directly from the API Directory: import it, store your credential once, and your agent calls the availability, booking, and unit operations. That keeps your agent's context free of an extra server's tool definitions.
What authentication does the Cargo Self-Service API use?
It authenticates with OAuth2, per its OpenAPI spec. Through Jentic the token is stored encrypted by your own instance and injected at call time, so it never reaches the agent's context.
Can I book cargo on a ferry departure with the Cargo Self-Service API?
Yes. POST /cargo-self-service/v1/availability-search/departures/{departureCode}/{journeyCode} checks space, and POST /cargo-self-service/v1/departures/{departureCode}/{journeyCode}/bookings creates the booking on that sailing.
How do I search cargo availability through Jentic?
Search Jentic for 'search cargo availability', load the input schema, and execute POST /cargo-self-service/v1/availability-search/departures/{departureCode}/{journeyCode}. To run it on your own infrastructure, install Jentic One from its GitHub repo.
Can I limit what my agent is allowed to do with the Cargo Self-Service API?
Yes. Write a rule that allows only the availability-search and booking-read operations under a departure and journey code, so the agent can quote space and read bookings and nothing else, and every call it makes is logged. Creating or updating a booking stays out unless you add those operations.
Know of an official OpenAPI document? Contribute it →
For Agents
Search cargo availability on Carus ferry departures, create and read bookings, manage cargo units on a booking, and list departures, journeys, and ports.
Use for: Check cargo space on a ferry departure, Book cargo on a scheduled sailing, Read the details of an existing booking, Add a cargo unit to a booking
Not supported: Does not track shipments after sailing, handle customs filing, or cover parcel carriers. Use for searching, booking, and managing Carus ferry cargo only.
The Cargo Self-Service API books and manages freight on Carus ferry departures. It searches availability for a departure and journey, creates and reads bookings, and manages cargo units on a booking. It also lists reference data such as departures, journeys, and ports. Authentication uses OAuth2, and the flow is built for cargo customers arranging space on scheduled sailings.
This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.
/cargo-self-service/v1/units/{vehicleUnitNumber}
Update a cargo unit
/cargo-self-service/v1/departures
List scheduled departures
/cargo-self-service/v1/ports
List ports
Base layer of spec validity and structural soundness.
Aggregated quality score from linter diagnostics, weighted by severity.
Percentage of `$ref` references that resolve successfully.
Checks whether the API description parses successfully and conforms to its declared specification (e.g., OpenAPI).
Structural correctness score based on schema issues using logarithmic dampening.
Clarity, completeness, and ingestion readiness for developers and tooling.
How richly the API is illustrated with examples.
Percentage of examples that conform to their schemas.
Percentage of operations with complete response definitions (success, client error, server error).
Health of API ingestion, bundling, and resolution within Jentic pipelines.
Semantic breadth, depth, and agent comprehension for AI systems.
Coverage of descriptions across API elements.
Coverage of RFC 9457 Problem Details for error responses.
Coverage, uniqueness, and casing consistency of operationIds for AI inference.
Coverage of summaries across operations/tags/info.
Functional utility, complexity comfort, and AI orchestration readiness.
Agent comfort level based on API operational and structural complexity.
Trust, risk posture, and security compliance.
Average quality of security schemes based on authentication method strength (weakest link for OAuth2).
Findability, semantic richness, and reasoning readiness.
Clarity and depth of descriptions across API elements.
Score it yourself
Every API in the directory is allowlisted, so you can re-score it with no key required.
npx @jentic/api-scorecard-cli score <openapi-url>