openapi: 3.0.0 info: title: 'Swagger Petstore' description: 'This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.' termsOfService: 'http://swagger.io/terms/' contact: email: apiteam@swagger.io license: name: 'Apache 2.0' url: 'http://www.apache.org/licenses/LICENSE-2.0.html' version: 1.0.0 servers: - url: 'https://petstore.swagger.io/v3' description: 'OpenApi host' paths: /pet/findByTags: get: tags: - pet summary: 'Finds Pets by tags' description: 'Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.' operationId: findPetsByTags parameters: - name: tags in: query description: 'Tags to filter by' required: true style: form schema: type: array items: type: string responses: '200': description: 'successful operation' '400': description: 'Invalid tag value' deprecated: true security: - petstore_auth: - 'write:pets' - 'read:pets' /pet/findByStatus: get: tags: - pet summary: 'Finds Pets by status' description: 'Multiple status values can be provided with comma separated strings' operationId: findPetsByStatus parameters: - name: status in: query description: 'Status values that need to be considered for filter' required: true style: form schema: type: array items: type: string default: available enum: - available - pending - sold responses: '200': description: 'successful operation' content: application/json: schema: type: array items: $ref: '#/components/schemas/Pet' '400': description: 'Invalid status value' security: - petstore_auth: - 'write:pets' - 'read:pets' '/pet/{petId}': get: tags: - pet summary: 'Find pet by ID' description: 'Returns a single pet' operationId: getPetById parameters: - name: petId in: path description: 'ID of pet to return' required: true schema: type: integer format: int64 responses: '200': description: 'successful operation' content: application/json: schema: $ref: '#/components/schemas/Pet' '400': description: 'Invalid ID supplied' '404': description: 'Pet not found' security: - api_key: [] post: tags: - pet summary: 'Updates a pet in the store with form data' description: '' operationId: updatePetWithForm parameters: - name: petId in: path description: 'ID of pet that needs to be updated' required: true schema: type: integer format: int64 requestBody: required: false content: application/x-www-form-urlencoded: schema: properties: name: description: 'Updated name of the pet' type: string status: description: 'Updated status of the pet' type: string type: object responses: '405': description: 'Invalid input' security: - petstore_auth: - 'write:pets' - 'read:pets' delete: tags: - pet summary: 'Deletes a pet' description: '' operationId: deletePet parameters: - name: petId in: path description: 'Pet id to delete' required: true schema: type: integer format: int64 responses: '400': description: 'Invalid ID supplied' '404': description: 'Pet not found' security: - petstore_auth: - 'write:pets' - 'read:pets' /pet: put: tags: - pet summary: 'Update an existing pet' description: '' operationId: updatePet requestBody: description: 'Pet object that needs to be added to the store' required: true content: application/xml: schema: $ref: '#/components/schemas/Pet' application/json: schema: $ref: '#/components/schemas/Pet' responses: '400': description: 'Invalid ID supplied' '404': description: 'Pet not found' '405': description: 'Validation exception' security: - petstore_auth: - 'write:pets' - 'read:pets' post: tags: - pet summary: 'Add a new pet to the store' description: '' operationId: addPet requestBody: description: 'Pet object that needs to be added to the store' required: true content: application/xml: schema: $ref: '#/components/schemas/Pet' application/json: schema: $ref: '#/components/schemas/Pet' responses: '405': description: 'Invalid input' security: - petstore_auth: - 'write:pets' - 'read:pets' '/pet/{petId}/uploadImage': post: tags: - pet summary: 'uploads an image' description: '' operationId: uploadFile parameters: - name: petId in: path description: 'ID of pet to update' required: true schema: type: integer format: int64 requestBody: required: true content: multipart/form-data: schema: required: - file properties: additionalMetadata: description: 'Additional data to pass to server' type: string file: description: 'file to upload' type: string format: file type: object responses: '200': description: 'successful operation' security: - petstore_auth: - 'read:pets' - 'write:pets' /store/inventory: get: tags: - store summary: 'Returns pet inventories by status' description: 'Returns a map of status codes to quantities' operationId: getInventory parameters: [] responses: '200': description: 'successful operation' security: - api_key: [] /store/order: post: tags: - store summary: 'Place an order for a pet' description: '' operationId: placeOrder requestBody: description: 'order placed for purchasing the pet' required: true content: application/json: schema: $ref: '#/components/schemas/Order' responses: '200': description: 'successful operation' '400': description: 'Invalid Order' '/store/order/{orderId}': get: tags: - store summary: 'Find purchase order by ID' description: 'For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions' operationId: getOrderById parameters: - name: orderId in: path description: 'ID of pet that needs to be fetched' required: true schema: type: integer format: int64 maximum: 10 minimum: 1 responses: '200': description: 'successful operation' '400': description: 'Invalid ID supplied' '404': description: 'Order not found' delete: tags: - store summary: 'Delete purchase order by ID' description: 'For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors' operationId: deleteOrder parameters: - name: orderId in: path description: 'ID of the order that needs to be deleted' required: true schema: type: integer format: int64 minimum: 1 responses: '400': description: 'Invalid ID supplied' '404': description: 'Order not found' /user: post: tags: - user summary: 'Create user' description: 'This can only be done by the logged in user.' operationId: createUser requestBody: description: 'Created user object' required: true content: multipart/form-data: schema: $ref: '#/components/schemas/User' responses: default: description: 'successful operation' /user/createWithArray: post: tags: - user summary: 'Creates list of users with given input array' description: '' operationId: createUsersWithArrayInput requestBody: description: 'List of user object' required: true content: multipart/form-data: schema: type: array items: $ref: '#/components/schemas/User' responses: default: description: 'successful operation' /user/createWithList: post: tags: - user summary: 'Creates list of users with given input array' description: '' operationId: createUsersWithListInput requestBody: description: 'List of user object' required: true content: multipart/form-data: schema: type: array items: $ref: '#/components/schemas/User' responses: default: description: 'successful operation' /user/login: get: tags: - user summary: 'Logs user into the system' description: '' operationId: loginUser parameters: - name: username in: query description: 'The user name for login' required: true schema: type: string - name: password in: query description: 'The password for login in clear text' schema: type: string responses: '200': description: 'successful operation' headers: X-Rate-Limit: description: 'calls per hour allowed by the user' schema: type: integer format: int32 X-Expires-After: description: 'date in UTC when token expires' schema: type: string format: date-time '400': description: 'Invalid username/password supplied' /user/logout: get: tags: - user summary: 'Logs out current logged in user session' description: '' operationId: logoutUser parameters: [] responses: default: description: 'successful operation' '/user/{username}': get: tags: - user summary: 'Get user by user name' description: '' operationId: getUserByName parameters: - name: username in: path description: 'The name that needs to be fetched. Use user1 for testing. ' required: true schema: type: string responses: '200': description: 'successful operation' '400': description: 'Invalid username supplied' '404': description: 'User not found' put: tags: - user summary: 'Updated user' description: 'This can only be done by the logged in user.' operationId: updateUser parameters: - name: username in: path description: 'name that need to be updated' required: true schema: type: string requestBody: description: 'Updated user object' required: true content: multipart/form-data: schema: $ref: '#/components/schemas/User' responses: '400': description: 'Invalid user supplied' '404': description: 'User not found' delete: tags: - user summary: 'Delete user' description: 'This can only be done by the logged in user.' operationId: deleteUser parameters: - name: username in: path description: 'The name that needs to be deleted' required: true schema: type: string responses: '400': description: 'Invalid username supplied' '404': description: 'User not found' components: schemas: ApiResponse: properties: code: type: integer format: int32 type: type: string message: type: string type: object Category: properties: id: type: integer format: int64 name: type: string type: object xml: name: Category Order: properties: id: type: integer format: int64 petId: type: integer format: int64 complete: type: boolean default: false quantity: type: integer format: int32 shipDate: type: string format: date-time status: description: 'Order Status' type: string enum: - placed - approved - delivered type: object xml: name: Order Pet: required: - name - photoUrls properties: id: type: integer format: int64 name: type: string example: doggie category: $ref: '#/components/schemas/Category' photoUrls: type: array items: type: string xml: name: photoUrl wrapped: true tags: type: array items: $ref: '#/components/schemas/Tag' xml: name: tag wrapped: true status: description: 'pet status in the store' type: string enum: - available - pending - sold type: object xml: name: Pet Tag: properties: id: type: integer format: int64 name: type: string type: object xml: name: Tag User: properties: id: type: integer format: int64 username: type: string firstName: type: string lastName: type: string email: type: string password: type: string phone: type: string userStatus: description: 'User Status' type: integer format: int32 type: object xml: name: User securitySchemes: api_key: type: apiKey name: api_key in: header petstore_auth: type: oauth2 flows: implicit: authorizationUrl: 'http://petstore.swagger.io/oauth/dialog' scopes: 'read:pets': 'read your pets' 'write:pets': 'modify pets in your account' tags: - name: pet description: 'Everything about your Pets' externalDocs: description: 'Find out more' url: 'http://swagger.io' - name: store description: 'Access to Petstore orders' - name: user description: 'Operations about user' externalDocs: description: 'Find out more about our store' url: 'http://swagger.io' externalDocs: description: 'Find out more about Swagger' url: 'http://swagger.io'