API Documentation
Complete OpenAPI 3.0 specification for all available APIs
Practice Automated Testing API
RESTful API for practicing automated testing. Includes Books management and Authentication endpoints.
Version: 1.0.0OpenAPI 3.0.0
Servers
https://practiceautomatedtesting.com/v1Production serverBooks
Book management endpoints
Get all books
Create a new book
Get a book by ID
Update a book
Delete a book
Authentication
User authentication and authorization
Register a new user
User login
Schemas
Book
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1
},
"title": {
"type": "string",
"example": "The Great Gatsby"
},
"author": {
"type": "string",
"example": "F. Scott Fitzgerald"
},
"isbn": {
"type": "string",
"example": "978-0743273565"
},
"price": {
"type": "number",
"format": "float",
"example": 12.99
},
"inStock": {
"type": "boolean",
"example": true
}
}
}BookDetail
{
"allOf": [
{
"$ref": "#/components/schemas/Book"
},
{
"type": "object",
"properties": {
"description": {
"type": "string",
"example": "A novel set in the Jazz Age..."
},
"publishedDate": {
"type": "string",
"format": "date",
"example": "1925-04-10"
},
"category": {
"type": "string",
"example": "Classic Literature"
}
}
}
]
}BookInput
{
"type": "object",
"required": [
"title",
"author",
"isbn",
"price"
],
"properties": {
"title": {
"type": "string",
"example": "New Book Title"
},
"author": {
"type": "string",
"example": "Author Name"
},
"isbn": {
"type": "string",
"example": "978-1234567890"
},
"price": {
"type": "number",
"format": "float",
"example": 19.99
},
"inStock": {
"type": "boolean",
"example": true
},
"description": {
"type": "string",
"example": "Book description"
},
"category": {
"type": "string",
"example": "Fiction"
}
}
}Pagination
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"example": 1
},
"limit": {
"type": "integer",
"example": 10
},
"total": {
"type": "integer",
"example": 3
}
}
}User
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"example": 1
},
"email": {
"type": "string",
"format": "email",
"example": "user@example.com"
},
"firstName": {
"type": "string",
"example": "John"
},
"lastName": {
"type": "string",
"example": "Doe"
}
}
}RegisterInput
{
"type": "object",
"required": [
"email",
"password",
"firstName",
"lastName"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"example": "user@example.com"
},
"password": {
"type": "string",
"format": "password",
"example": "SecurePass123!"
},
"firstName": {
"type": "string",
"example": "John"
},
"lastName": {
"type": "string",
"example": "Doe"
}
}
}LoginInput
{
"type": "object",
"required": [
"email",
"password"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"example": "user@example.com"
},
"password": {
"type": "string",
"format": "password",
"example": "SecurePass123!"
}
}
}AuthResponse
{
"type": "object",
"properties": {
"token": {
"type": "string",
"example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
},
"refreshToken": {
"type": "string",
"example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
},
"expiresIn": {
"type": "integer",
"example": 3600
},
"user": {
"$ref": "#/components/schemas/User"
}
}
}