openapi: 3.0.0 info: title: Public API version: '1.0' description: This is the public API documentation, used by our iOS, Android and web apps. servers: - url: 'http://api.mycompany.com/v1/' paths: /books: post: summary: Book a trip tags: [] responses: '200': description: Booked trip content: application/json: schema: type: object properties: id: type: string format: uuid trip_id: type: string format: uuid cents: type: string status: type: string enum: - booked - canceled - paid operationId: post-book requestBody: content: application/json: schema: type: object properties: trip_id: type: string voucher_code: type: string description: Book a trip. parameters: [] /search: post: summary: Search for a train trip tags: [] responses: '200': description: An array of available trips. content: application/json: schema: type: array items: type: object properties: id: type: string departure_station: type: string arrival_station: type: string departure_at: type: string arrival_at: type: string cents: type: string train_code: type: string examples: {} operationId: post-search requestBody: content: application/json: examples: default: summary: "Basic Origin-Destination search" value: departure_station: "Marseille" destination_station: "Sisteron" departure_around: "2023-05-04T09:42:00+00:00" via: summary: "Search via a specific destination" value: departure_station: "Marseille" via_station: "Valence" destination_station: "Sisteron" departure_around: "2023-05-04T09:42:00+00:00" schema: type: object required: - departure_station - destination_station properties: departure_station: type: string via_station: type: string destination_station: type: string departure_around: type: string format: date-time description: 'Search for an available train trip between 2 stations, around a given departure date & time.' /payments: post: summary: Pay for a booked trip tags: - Payments responses: '200': description: Successful payment content: application/json: schema: type: object properties: id: type: string book_id: type: string cents: type: string status: type: string '': type: string operationId: post-charges requestBody: content: application/json: schema: type: object properties: book_id: type: string payment_token: type: string description: Payment token generated by the payment gateway. cents: type: string description: '' parameters: []