Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Timetables, 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%2Fdeutschebahn.com%2Fdeutschebahn" | 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%2Fdeutschebahn.com%2Fdeutschebahn" | 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 Timetables API.
Look up stations by a name pattern to find their EVA station numbers
Fetch the planned timetable for a station for a given date and hour
Get the full set of known changes for a station
Get the recent changes for a station
Combine planned and changed data for a current departures view
GET STARTED
Patterns agents use Timetables API for, with concrete tasks.
★ Agent-Driven Departures Board
An AI agent builds a live departures view for a German station by resolving the station name to its EVA number, pulling the planned timetable for the current hour, and merging in the recent changes so delays and platform moves are reflected. A travel assistant can then answer 'when is the next train' with up-to-date times.
Resolve a station by name to its EVA number, fetch the planned timetable for the current hour, and apply the recent changes
Station Resolution
Turn a free-text station name into the EVA station number the timetable endpoints require. A trip tool uses the station pattern search as its first step so later timetable calls always target a valid station.
Search stations matching a name pattern and return the EVA number of the best match
Disruption Monitoring
Track delays and cancellations at a station by polling its full and recent change feeds. An operations dashboard can surface which trains are affected without re-reading the whole planned timetable each time.
Read the recent changes for a station and list the trains with delays or cancellations
4 endpoints — the deutsche bahn timetables api returns planned and changed train schedules for german rail stations.
METHOD
PATH
DESCRIPTION
/station/{pattern}
Search stations by name pattern
/plan/{evaNo}/{date}/{hour}
Planned timetable for a station, date, and hour
/fchg/{evaNo}
Full known changes for a station
/rchg/{evaNo}
Recent changes for a station
/station/{pattern}
Search stations by name pattern
/plan/{evaNo}/{date}/{hour}
Planned timetable for a station, date, and hour
/fchg/{evaNo}
Full known changes for a station
/rchg/{evaNo}
Recent changes for a station
What agents get from Jentic-routed access to this vendor.
Setup
By hand you register on the DB API Marketplace, obtain both the DB-Api-Key and the DB-Client-Id, send them on every request, and resolve EVA station numbers before a timetable call works. Through Jentic you connect once from the API Directory and your agent calls the operations by intent.
Permission scoping
All four operations are read-only GETs, so you choose exactly which your agent may call, such as station search and the timetable lookup while leaving out the change feeds. The EVA number travels in the URL path, so a rule can bind the agent to specific path operations.
Credential isolation
Your DB-Api-Key and DB-Client-Id are stored encrypted on your own Jentic One instance and injected into the request headers at execution time, never placed in the agent's prompt, logs, or context. You rotate them in one place.
Intent-based discovery
Agents search Jentic by intent such as 'planned timetable for a station' or 'find a station by name', and Jentic returns the matching Deutsche Bahn operation with its input schema so the agent calls the right endpoint without reading the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using Timetables API through Jentic.
What authentication does the Deutsche Bahn Timetables API use?
It uses two apiKey headers together: a DB-Api-Key and a DB-Client-Id, both sent on every request through the DB API Marketplace. When you connect it through Jentic, your own Jentic One instance stores both values encrypted and attaches them to each call for you.
How do I get the EVA station number for a station?
Use the station search endpoint with a name pattern: it returns the matching stations and their EVA station numbers. You then pass that EVA number to the planned-timetable and change endpoints, which identify a station by its EVA number rather than its name.
What are the rate limits for the Deutsche Bahn Timetables API?
The OpenAPI spec does not state rate limits, and quotas are managed through the DB API Marketplace. Check the official documentation at https://developers.deutschebahn.com/ for current limits before heavy polling.
How do I read German train timetables through Jentic?
Add the Deutsche Bahn Timetables API from the Jentic API Directory and connect your DB-Api-Key and DB-Client-Id once. Your agent then searches by intent such as 'planned timetable for a station' and calls the matching operation. 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 Deutsche Bahn API?
Yes. All four operations are read-only GETs, so you grant your agent only the ones it needs, such as station search and the timetable lookup while leaving out the change feeds. The EVA number sits in the URL path, so a rule can also pin the agent to specific path operations, and every call is logged.
Is there a Deutsche Bahn timetable MCP server?
You don't need an MCP server to give your agent Deutsche Bahn timetables. Jentic connects it directly from the API Directory: import it, connect your keys once, and your agent can search stations and read timetables without another server loading tool definitions into its context.
Know of an official OpenAPI document? Contribute it →
For Agents
Resolve German rail stations by name, read Deutsche Bahn planned timetables by date and hour, and pull the full and recent change feeds for delays and cancellations. Covers station lookup and timetable data.
Use for: Find the station number for a named station, Get the planned timetable for a station at a given hour, Show the latest changes for a station, I want the full change list for a station
Not supported: Does not sell tickets, plan door-to-door journeys, or cover non-DB operators. Use for Deutsche Bahn station lookup and timetable data only.
The Deutsche Bahn Timetables API returns planned and changed train schedules for German rail stations. You resolve a station by a name pattern to get its EVA station number, pull the planned timetable for that station for a given date and hour, and read the full and recent change feeds that carry delays, platform changes, and cancellations. Combining the plan with the change feeds gives an up-to-date picture of departures and arrivals at a station.
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.
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>