TravelCargo for AI agents & developers
TravelCargo (travelcargo.eu), a Berlin-based peer-to-peer shipping marketplace connecting travelers with spare luggage space and senders.
Free platform, no API keys. Everything below is read-only public inventory, served as explicit allowlists, no personal data beyond a traveler's first name and government-ID verification flag.
REST API v1 (read-only)
Base: https://www.travelcargo.eu/api/public/v1
Endpoints:
GET /trips/search?origin=&destination=&dateFrom=&dateTo=&page=, active trips matching a route (city variants tolerated: Bombay → Mumbai)GET /trips/{id}, single trip detailGET /quote?origin=&destination=&weightKg=, indicative price range, labelledindicative: true, with cited courier comparisonGET /openapi.json: OpenAPI 3.1 spec
curl -s "https://www.travelcargo.eu/api/public/v1/trips/search?origin=Berlin&destination=Mumbai" curl -s "https://www.travelcargo.eu/api/public/v1/quote?origin=Berlin&destination=Mumbai&weightKg=5"
A nonsense query returns an empty items array, never an error. Errors are RFC7807-style problem documents.
MCP server (read-only)
Endpoint: https://www.travelcargo.eu/api/mcp , Streamable HTTP (stateless), POST JSON-RPC.
Tools: search_trips, get_trip, estimate_quote, identical results to the REST API (shared code path).
{
"mcpServers": {
"travelcargo": {
"url": "https://www.travelcargo.eu/api/mcp",
"type": "http"
}
}
}curl -s https://www.travelcargo.eu/api/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"0"}}}'Local development: npm run mcp (stdio) or npm run mcp:inspect, see src/mcp/README.md in the repository.
Roadmap: a create_request tool (agents filing sender requests) will be added once content screening and stricter rate limits are in place, unauthenticated writes into member inboxes are an abuse surface we won't ship lightly.
Rate limits, caching & freshness
- · Rate limit: 30 requests/minute/IP per server instance (429 with
Retry-Afterbeyond it). - · Caching: REST responses are fresh at the CDN edge for 60 s and served stale while revalidating for 300 s.
- · Freshness: trips are live Firestore inventory; a trip disappears when its departure date passes or the traveler edits their plan.
- · Prices: traveler fees are negotiated per arrangement, treat every price we serve as indicative. Courier comparisons carry
sourceUrlandretrievedAt. - · No keys: read access is public. If you build on this API, set your own User-Agent so we can reach you if something changes.
- · Terms: use of the API is subject to our Terms; attribution "via travelcargo.eu" is appreciated.
Changelog
- 2026-10-23, v1 launch:
trips/search,trips/{id},quote, OpenAPI 3.1; read-only MCP server (search_trips,get_trip,estimate_quote). - 2026-08-23, RFC 9727 API catalog and
/api/public/companion.
Compact machine summary: llms.txt · expanded: llms-full.txt · catalog: .well-known/api-catalog · health: /api/health