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"