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 server

Books

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"
    }
  }
}