openapi: 3.0.3 info: title: Swagger Petstore - OpenAPI 3.0 description: |- This is a sample Pet Store Server based on the OpenAPI 3.0 specification. You can find out more about Swagger at [https://swagger.io](https://swagger.io). In the third iteration of the pet store, we've switched to the design first approach! You can now help us improve the API whether it's by making changes to the definition itself or to the code. That way, with time, we can improve the API in general, and expose some of the new features in OAS3. _If you're looking for the Swagger 2.0/OAS 2.0 version of Petstore, then click [here](https://editor.swagger.io/?url=https://petstore.swagger.io/v2/swagger.yaml). Alternatively, you can load via the `Edit > Load Petstore OAS 2.0` menu option!_ Some useful links: - [The Pet Store repository](https://github.com/swagger-api/swagger-petstore) - [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml) 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.11 externalDocs: description: Find out more about Swagger url: http://swagger.io servers: - url: http://localhost:8080 tags: - name: pet description: Everything about your Pets externalDocs: description: Find out more url: http://swagger.io - name: store description: Access to Petstore orders externalDocs: description: Find out more about our store url: http://swagger.io - name: user description: Operations about user paths: /pet: put: tags: - pet summary: Update an existing pet description: Update an existing pet by Id operationId: updatePet requestBody: description: Update an existent pet in the store content: application/json: schema: $ref: '#/components/schemas/Pet' application/xml: schema: $ref: '#/components/schemas/Pet' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Pet' required: true responses: "200": description: Successful operation content: application/json: schema: $ref: '#/components/schemas/Pet' application/xml: schema: $ref: '#/components/schemas/Pet' "400": description: Invalid ID supplied "404": description: Pet not found "405": description: Validation exception security: - petstore_auth: - write:pets - read:pets x-swagger-router-controller: Pet post: tags: - pet summary: Add a new pet to the store description: Add a new pet to the store operationId: addPet requestBody: description: Create a new pet in the store content: application/json: schema: $ref: '#/components/schemas/Pet' application/xml: schema: $ref: '#/components/schemas/Pet' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Pet' required: true responses: "200": description: Successful operation content: application/json: schema: $ref: '#/components/schemas/Pet' application/xml: schema: $ref: '#/components/schemas/Pet' "405": description: Invalid input security: - petstore_auth: - write:pets - read:pets x-swagger-router-controller: Pet /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: false style: form explode: true schema: type: string default: available enum: - available - pending - sold responses: "200": description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/Pet' x-content-type: application/json application/xml: schema: type: array items: $ref: '#/components/schemas/Pet' "400": description: Invalid status value security: - petstore_auth: - write:pets - read:pets x-swagger-router-controller: Pet /pet/findByTags: get: tags: - pet summary: Finds Pets by tags description: "Multiple 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: false style: form explode: true schema: type: array items: type: string responses: "200": description: successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/Pet' x-content-type: application/json application/xml: schema: type: array items: $ref: '#/components/schemas/Pet' "400": description: Invalid tag value security: - petstore_auth: - write:pets - read:pets x-swagger-router-controller: Pet /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 style: simple explode: false schema: type: integer format: int64 responses: "200": description: successful operation content: application/json: schema: $ref: '#/components/schemas/Pet' application/xml: schema: $ref: '#/components/schemas/Pet' "400": description: Invalid ID supplied "404": description: Pet not found security: - api_key: [] - petstore_auth: - write:pets - read:pets x-swagger-router-controller: Pet 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 style: simple explode: false schema: type: integer format: int64 - name: name in: query description: Name of pet that needs to be updated required: false style: form explode: true schema: type: string - name: status in: query description: Status of pet that needs to be updated required: false style: form explode: true schema: type: string responses: "405": description: Invalid input security: - petstore_auth: - write:pets - read:pets x-swagger-router-controller: Pet delete: tags: - pet summary: Deletes a pet description: delete a pet operationId: deletePet parameters: - name: api_key in: header description: "" required: false style: simple explode: false schema: type: string - name: petId in: path description: Pet id to delete required: true style: simple explode: false schema: type: integer format: int64 responses: "400": description: Invalid pet value security: - petstore_auth: - write:pets - read:pets x-swagger-router-controller: Pet /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 style: simple explode: false schema: type: integer format: int64 - name: additionalMetadata in: query description: Additional Metadata required: false style: form explode: true schema: type: string requestBody: content: application/octet-stream: schema: type: string format: binary responses: "200": description: successful operation content: application/json: schema: $ref: '#/components/schemas/ApiResponse' security: - petstore_auth: - write:pets - read:pets x-swagger-router-controller: Pet /store/inventory: get: tags: - store summary: Returns pet inventories by status description: Returns a map of status codes to quantities operationId: getInventory responses: "200": description: successful operation content: application/json: schema: type: object additionalProperties: type: integer format: int32 x-content-type: application/json security: - api_key: [] x-swagger-router-controller: Store /store/order: post: tags: - store summary: Place an order for a pet description: Place a new order in the store operationId: placeOrder requestBody: content: application/json: schema: $ref: '#/components/schemas/Order' application/xml: schema: $ref: '#/components/schemas/Order' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Order' responses: "200": description: successful operation content: application/json: schema: $ref: '#/components/schemas/Order' "405": description: Invalid input x-swagger-router-controller: Store /store/order/{orderId}: get: tags: - store summary: Find purchase order by ID description: For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions. operationId: getOrderById parameters: - name: orderId in: path description: ID of order that needs to be fetched required: true style: simple explode: false schema: type: integer format: int64 responses: "200": description: successful operation content: application/json: schema: $ref: '#/components/schemas/Order' application/xml: schema: $ref: '#/components/schemas/Order' "400": description: Invalid ID supplied "404": description: Order not found x-swagger-router-controller: Store delete: tags: - store summary: Delete purchase order by ID description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors operationId: deleteOrder parameters: - name: orderId in: path description: ID of the order that needs to be deleted required: true style: simple explode: false schema: type: integer format: int64 responses: "400": description: Invalid ID supplied "404": description: Order not found x-swagger-router-controller: Store /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 content: application/json: schema: $ref: '#/components/schemas/User' application/xml: schema: $ref: '#/components/schemas/User' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/User' responses: default: description: successful operation content: application/json: schema: $ref: '#/components/schemas/User' application/xml: schema: $ref: '#/components/schemas/User' x-swagger-router-controller: User /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 style: form explode: true schema: type: string - name: password in: query description: The password for login in clear text required: true style: form explode: true schema: type: string responses: "200": description: successful operation headers: X-Rate-Limit: description: calls per hour allowed by the user style: simple explode: false schema: type: integer format: int32 X-Expires-After: description: date in UTC when token expires style: simple explode: false schema: type: string format: date-time content: application/xml: schema: type: string x-content-type: application/xml application/json: schema: type: string "400": description: Invalid username/password supplied x-swagger-router-controller: User /user/logout: get: tags: - user summary: Logs out current logged in user session description: "" operationId: logoutUser parameters: [] responses: default: description: successful operation x-swagger-router-controller: User components: schemas: Order: type: object properties: id: type: integer format: int64 example: 10 petId: type: integer format: int64 example: 198772 quantity: type: integer format: int32 example: 7 shipDate: type: string format: date-time status: type: string description: Order Status example: approved enum: - placed - approved - delivered complete: type: boolean example: petId: 198772 quantity: 7 id: 10 shipDate: 2000-01-23T04:56:07.000+00:00 complete: true status: approved xml: name: order Customer: type: object properties: id: type: integer format: int64 example: 100000 username: type: string example: fehguy address: type: array xml: name: addresses wrapped: true items: $ref: '#/components/schemas/Address' xml: name: customer Address: type: object properties: street: type: string example: 437 Lytton city: type: string example: Palo Alto state: type: string example: CA zip: type: string example: "94301" xml: name: address Category: type: object properties: id: type: integer format: int64 example: 1 name: type: string example: Dogs example: name: Dogs id: 1 xml: name: category User: type: object properties: username: type: string example: theUser password: type: string example: "12345" isAgent: type: boolean example: true required: - username - password - isAgent example: password: "12345" username: theUser isAgent: true xml: name: user Tag: type: object properties: id: type: integer format: int64 name: type: string example: name: name id: 0 xml: name: tag Pet: required: - name - photoUrls type: object properties: id: type: integer format: int64 example: 10 name: type: string example: doggie category: $ref: '#/components/schemas/Category' photoUrls: type: array xml: wrapped: true items: type: string xml: name: photoUrl tags: type: array xml: wrapped: true items: $ref: '#/components/schemas/Tag' status: type: string description: pet status in the store enum: - available - pending - sold example: photoUrls: - photoUrls - photoUrls name: doggie id: 10 category: name: Dogs id: 1 tags: - name: name id: 0 - name: name id: 0 status: available xml: name: pet ApiResponse: type: object properties: code: type: integer format: int32 type: type: string message: type: string example: code: 0 type: type message: message xml: name: '##default' requestBodies: Pet: description: Pet object that needs to be added to the store content: application/json: schema: $ref: '#/components/schemas/Pet' application/xml: schema: $ref: '#/components/schemas/Pet' UserArray: description: List of user object content: application/json: schema: type: array items: $ref: '#/components/schemas/User' securitySchemes: petstore_auth: type: oauth2 flows: implicit: authorizationUrl: https://petstore3.swagger.io/oauth/authorize scopes: write:pets: modify pets in your account read:pets: read your pets api_key: type: apiKey name: api_key in: header