Unofficial RENFE WSMR API OpenAPI Specification
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

311 lines
8.0 KiB

openapi: '3.0.2'
info:
title: RENFE WSMR API
version: '1.0'
servers:
- url: https://wsmr.renfe.es/wsmRestApi/v1/
paths:
/stations:
get:
operationId: getStations
tags:
- station
summary: List all stations
parameters:
- $ref: '#/components/parameters/app'
- $ref: '#/components/parameters/appVersion'
- $ref: '#/components/parameters/osName'
- $ref: '#/components/parameters/osVersion'
- $ref: '#/components/parameters/language'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetStationsResponse'
/stations/nearest:
get:
operationId: getNearestStation
tags:
- station
summary: List nearest stations
parameters:
- $ref: '#/components/parameters/app'
- $ref: '#/components/parameters/appVersion'
- $ref: '#/components/parameters/osName'
- $ref: '#/components/parameters/osVersion'
- $ref: '#/components/parameters/language'
- in: query
name: lat
required: true
description: Latitude
schema:
type: number
format: float
example: 41.392710
- in: query
name: lon
required: true
description: Longitude
schema:
type: number
format: float
example: 2.109310
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetStationsResponse'
/trains:
get:
tags:
- train
operationId: getTrainList
summary: Find train connections for a specific route
description: This operation uses the v2-Version of the API. Please update the baseUrl accordingly. To get a correct result, you have to specify at least one passenger.
servers:
- url: https://wsmr.renfe.es/wsmRestApi/v2/
parameters:
- $ref: '#/components/parameters/app'
- $ref: '#/components/parameters/appVersion'
- $ref: '#/components/parameters/osName'
- $ref: '#/components/parameters/osVersion'
- $ref: '#/components/parameters/language'
- $ref: '#/components/parameters/businessFlow'
- in: query
name: outwardStation
required: true
description: Code of outward station
schema:
type: string
example: 60000
- in: query
name: returnStation
required: true
description: Code of return station
schema:
type: string
example: 71801
- in: query
name: outwardDate
required: true
description: Date for outward journey (DD-MM-YYYY)
schema:
type: string
format: date
pattern: /([0-9]{2}-[0-9]{2}-[0-9]{4}/
example: 01-05-2022
- in: query
name: returnDate
description: Date for return journey (DD-MM-YYYY)
schema:
type: string
format: date
pattern: /([0-9]{2}-[0-9]{2}-[0-9]{4}/
example: 02-05-2022
- in: query
name: adult
description: Number of adult passengers
schema:
type: number
format: int
example: 1
- in: query
name: child
description: Number of children
schema:
type: number
format: int
- in: query
name: babyUnderFour
description: Number of babies under 4 years
schema:
type: number
format: int
- in: query
name: senior
description: Number of senior passengers
schema:
type: number
format: int
- in: query
name: promoCode
description: Promo Code
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetTrainListResponse'
components:
parameters:
businessFlow:
name: businessFlow
required: false
in: header
schema:
type: string
enum:
- PURCHASE
- DETAIL
- CHANGE
- CANCELATION
app:
name: app
required: true
in: header
schema:
type: string
default: VMR
appVersion:
name: appVersion
required: true
in: header
schema:
type: string
example: 01.00.00
osName:
name: osName
required: false
in: header
schema:
type: string
example: 0R
osVersion:
name: osVersion
required: true
in: header
schema:
type: string
example: 1
language:
name: language
required: false
in: header
schema:
type: string
example: 'en'
schemas:
GetTrainListResponse:
type: object
required:
- trainProductsDiscountsOutward
- trainProductsDiscountsReturn
properties:
trainProductsDiscountsOutward:
type: boolean
trainProductsDiscountsReturn:
type: boolean
trainListOutward:
type: array
items:
$ref: '#/components/schemas/Train'
trainListReturn:
type: array
items:
$ref: '#/components/schemas/Train'
GetStationsResponse:
type: object
required:
- station
properties:
station:
type: array
items:
$ref: '#/components/schemas/Station'
lastUpdateStations:
type: string
format: 'date-time'
pattern: /([0-9]{4})-(?:[0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2}).([0-9]{3})/
example: "2022-03-01 01:06:25.034"
Train:
type: object
properties:
originDate:
type: string
format: date
pattern: /([0-9]{2}-[0-9]{2}-[0-9]{4}/
example: 10-04-2022
originTime:
type: string
format: time
example: 06:35
arrivalDate:
type: string
format: date
pattern: /([0-9]{2}-[0-9]{2}-[0-9]{4}/
example: 10-04-2022
arrivalTime:
type: string
format: time
example: 09:20
trainCode:
type: string
example: 06302
trainDescription:
type: string
example: AVLO
trainOperator:
type: string
example: LC
trainProductCode:
type: string
example: 112
travelDuration:
type: string
example: 2 h. 45 min.
availableForSale:
type: boolean
blocked:
type: boolean
completed:
type: boolean
trainGroupCodeForm:
type: boolean
travelException:
type: boolean
datosLargoPlazo:
type: object
properties:
rsvLargoPlazo:
type: boolean
originStation:
$ref: '#/components/schemas/TrainStation'
arrivalStation:
$ref: '#/components/schemas/TrainStation'
trainProductsDiscounts:
type: boolean
TrainStation:
type: object
properties:
stationCode:
type: string
example: 71801
stationDescription:
type: string
example: BCN-SANTS
largeDescription:
type: string
example: BARCELONA-SANTS
saleEnabled:
type: boolean
enabled:
type: boolean
Station:
type: object
properties:
code:
type: string
example: "71801"
description:
type: string
example: "Barcelona-Sans"
stationType:
type: string
example: "1"