# info.summary
Structured facts for one published EveryRail route page.

# info.description
Free, unauthenticated, read-only. Facts are summarised from the linked EveryRail page; link the `url` field when citing. Site and API overview: https://everyrail.com/llms.txt

# info.license.name
Attribution required: link the url field when citing

# paths./api/agent/route/.get.summary
Route facts for a city pair or a route slug

# paths./api/agent/route/.get.description
Provide either from + to (city slugs, either direction) or slug (route slug). Use /api/station-search/?q= to resolve a place name to a slug. GET only (HEAD is supported); there is no CORS preflight support, so call it with simple GET requests.

# paths./api/agent/route/.get.parameters[].description
Route slug, e.g. milan-to-rome. Alternative to from + to.

# paths./api/agent/route/.get.responses.400.description
Missing, malformed, or unsupported parameters.

# paths./api/agent/route/.get.responses.404.description
No published route page matches the query.

# paths./api/agent/route/.get.responses.500.description
The endpoint is not configured on this deployment.

# paths./api/station-search/.get.summary
Search stations and published pages by place name

# paths./api/station-search/.get.description
Resolves a free-text place or station name to station inventory records and matching published EveryRail pages. Requires q with at least 3 characters; a shorter query returns an empty result rather than an error.

# paths./api/station-search/.get.parameters[].description
City or station name to search for. Queries shorter than 3 characters return no results.

# paths./api/station-search/.get.parameters[].description
Maximum number of station results to return.

# paths./api/station-search/.get.parameters[].description
Content language for page results. Defaults to en.

# paths./api/station-search/.get.parameters[].description
Set to 1 to skip the station inventory lookup and return only page matches.

# paths./api/station-search/.get.responses.500.description
The endpoint is not configured on this deployment.

# components.schemas.Link.properties.note.description
Verbatim editorial note, present on rail_passes only.

# components.schemas.Link.properties.url.description
Absolute EveryRail URL carrying ?ref=agent-api.

# components.schemas.Route.description
Null or empty fields are omitted rather than emitted as null.

# components.schemas.Route.properties.page_direction.description
Canonical slug direction of the published page, e.g. london-to-paris.

# components.schemas.Route.properties.direction_note.description
Present only when the request's from/to named the reverse of page_direction: explains that schedule details describe the page's own direction.

# components.schemas.Route.properties.direct_service.description
Editorial text such as "Direct service", not a boolean.

# components.schemas.Route.properties.faq.description
Published FAQ items for the route page, passed through unchanged.

# components.schemas.NotFound.properties.query.description
Length-capped echo of the normalised parameters.

# components.schemas.NotFound.properties.resolve_names.description
Station/page search endpoint template for name to slug resolution.

# components.schemas.StationSearchPage.description
A published EveryRail page matching the query.

# components.schemas.StationSearchPage.properties.path.description
Site-relative path of the matching page.

# components.schemas.StationSearchResult.properties.results.description
Station inventory records matching the query.