Swagger Petstore API Documentation
A reference guide for the popular Swagger Petstore API (OAS 2.0), used widely for API testing practice.
Prepared by:
Md. Ebrahim Hossain
SQA Engineer at Achieve Test Prep (Newark, US)
Source API: petstore.swagger.io
Base URL
The primary endpoint for all API calls is:
https://petstore.swagger.io/v2
Pet Resource Operations
1. Add New Pet
/pet
Status Code: 200
Request Body (JSON Example)
{
"id": 12345,
"category": {
"id": 1,
"name": "Dogs"
},
"name": "Doggie",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "Friendly"
}
],
"status": "available"
}
Response (200 OK)
HTTP/1.1 200 OK { "id": 12345, "name": "Doggie", "status": "available" ... full pet object ... }
2. Find Pet by ID
/pet/{petId}
Status Code: 200
Request (Path Parameter)
GET /pet/12345 HTTP/1.1 Host: petstore.swagger.io/v2
Response (200 OK)
HTTP/1.1 200 OK { "id": 12345, "category": { "id": 1, "name": "Dogs" }, "name": "Doggie", ... other fields ... "status": "available" }
3. Find Pets by Status
/pet/findByStatus?status={status}
Status Code: 200
Request (Query Parameter)
Valid statuses: available, pending, sold.
GET /pet/findByStatus?status=pending HTTP/1.1 Host: petstore.swagger.io/v2
Response (200 OK)
HTTP/1.1 200 OK [ { "id": 67890, "name": "Kitty", "status": "pending" }, { "id": 11122, "name": "Parrot", "status": "pending" } ... more pets matching status ... ]
4. Update Existing Pet
/pet
Status Code: 200
Request Body (Existing ID required)
{
"id": 12345,
"name": "Updated-Doggie",
"status": "sold"
... other pet details ...
}
Response (200 OK)
HTTP/1.1 200 OK { "id": 12345, "name": "Updated-Doggie", "status": "sold" ... full updated pet object ... }
5. Delete Pet
/pet/{petId}
Status Code: 200
Request (Requires API Key Header)
DELETE /pet/12345 HTTP/1.1
Host: petstore.swagger.io/v2
# Header example:
-H 'api_key: special-key'
Response (200 OK)
HTTP/1.1 200 OK { "code": 200, "type": "unknown", "message": "12345" }
Store Order Operations
1. Get Inventory by Status
/store/inventory
Status Code: 200
Returns a map of pet statuses to the counts of pets in that status.
Request (Requires API Key Header)
GET /store/inventory HTTP/1.1 Host: petstore.swagger.io/v2
Response (200 OK)
HTTP/1.1 200 OK { "available": 50, "pending": 10, "sold": 5, "not_available": 2 }
2. Place Order for a Pet
/store/order
Status Code: 200
Request Body (Order Object)
{
"id": 10,
"petId": 12345,
"quantity": 1,
"shipDate": "2025-12-04T12:00:00.000Z",
"status": "placed",
"complete": false
}
Response (200 OK)
HTTP/1.1 200 OK { "id": 10, "petId": 12345, "quantity": 1, "status": "placed" ... full order object ... }
3. Find Order by ID
/store/order/{orderId}
Status Code: 200
Request (Path Parameter)
GET /store/order/10 HTTP/1.1 Host: petstore.swagger.io/v2
Response (200 OK)
HTTP/1.1 200 OK { "id": 10, "petId": 12345, "quantity": 1, "status": "placed" ... full order object ... }
4. Delete Order
/store/order/{orderId}
Status Code: 200
Request (Path Parameter)
DELETE /store/order/10 HTTP/1.1 Host: petstore.swagger.io/v2
Response (200 OK)
HTTP/1.1 200 OK { "code": 200, "type": "unknown", "message": "10" }
User Account Operations
1. Create Single User
/user
Status Code: 200
This operation can also be used to create an array of users via /user/createWithArray or /user/createWithList.
Request Body (User Object)
{
"id": 1,
"username": "testuser",
"firstName": "Test",
"lastName": "User",
"email": "test@example.com",
"password": "secure123",
"phone": "123-456-7890",
"userStatus": 0
}
Response (200 OK)
HTTP/1.1 200 OK { "code": 200, "type": "unknown", "message": "1" }
2. Get User by Username
/user/{username}
Status Code: 200
Request (Path Parameter)
GET /user/testuser HTTP/1.1 Host: petstore.swagger.io/v2
Response (200 OK)
HTTP/1.1 200 OK { "id": 1, "username": "testuser", "firstName": "Test", "lastName": "User", ... full user object ... }
3. Update User
/user/{username}
Status Code: 200
Request Body (Updated User Object)
{
"id": 1,
"username": "testuser",
"email": "new.test@example.com",
"password": "newsecure123"
}
Response (200 OK)
HTTP/1.1 200 OK { "code": 200, "type": "unknown", "message": "1" }
4. Delete User
/user/{username}
Status Code: 200
Request (Path Parameter)
DELETE /user/testuser HTTP/1.1 Host: petstore.swagger.io/v2
Response (200 OK)
HTTP/1.1 200 OK { "code": 200, "type": "unknown", "message": "testuser" }
5. Login User
/user/login?username={u}&password={p}
Status Code: 200
Request (Query Parameters)
GET /user/login?username=testuser&password=secure123 HTTP/1.1 Host: petstore.swagger.io/v2
Response (200 OK)
HTTP/1.1 200 OK { "code": 200, "type": "unknown", "message": "logged in user session: 1234567890" }
6. Logout User
/user/logout
Status Code: 200
Request
GET /user/logout HTTP/1.1 Host: petstore.swagger.io/v2
Response (200 OK)
HTTP/1.1 200 OK { "code": 200, "type": "unknown", "message": "ok" }