> ## Documentation Index
> Fetch the complete documentation index at: https://docs.slant.app/llms.txt
> Use this file to discover all available pages before exploring further.

# List books

> List all books the authenticated user has access to



## OpenAPI

````yaml /api-reference/openapi.yaml get /v1/books
openapi: 3.0.1
info:
  title: Slant Public API V1
  version: v1
  description: Public API for creating and managing resources in Slant
  contact:
    name: Slant API Support
    email: api@slant.com
servers:
  - url: https://api.slant.app
security:
  - bearer: []
paths:
  /v1/books:
    get:
      tags:
        - Books
      summary: List books
      description: List all books the authenticated user has access to
      parameters:
        - name: page
          in: query
          schema:
            type: integer
          description: Page number
          required: false
          example: 1
        - name: per_page
          in: query
          description: >-
            Items per page (1-100, default: 25). Values over 100 will be clamped
            to 100.
          required: false
          example: 25
          schema:
            type: integer
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - pagination
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Book'
                  pagination:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        example: 1
                      total_pages:
                        type: integer
                        example: 10
                      total_count:
                        type: integer
                        example: 100
                      per_page:
                        type: integer
                        example: 25
        '400':
          description: bad request - invalid JSON
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - detail
                properties:
                  error:
                    type: string
                    description: Error code
                    enum:
                      - invalid_json
                  detail:
                    oneOf:
                      - type: string
                        description: Human-readable error description
                      - type: array
                        items:
                          type: string
                        description: Array of validation error messages
        '401':
          description: unauthorized - missing or invalid token
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                  - detail
                properties:
                  error:
                    type: string
                    description: Error code
                    enum:
                      - token_missing
                      - token_invalid
                  detail:
                    oneOf:
                      - type: string
                        description: Human-readable error description
                      - type: array
                        items:
                          type: string
                        description: Array of validation error messages
        '403':
          description: forbidden
      security:
        - bearer: []
components:
  schemas:
    Book:
      type: object
      required:
        - id
        - name
        - role
        - tiers
        - users
        - teams
      properties:
        id:
          type: string
          description: The ID of the book
          example: abc123xyz
        name:
          type: string
          description: The name of the book
          example: John's Book
        role:
          type: string
          nullable: true
          enum:
            - principal
            - contributor
            - viewer
          description: >-
            The authenticated user's role in this book. Null for admin users
            accessing books without an explicit BookUser record.
          example: principal
        users:
          type: array
          description: Users with access to this book
          items:
            $ref: '#/components/schemas/BookUser'
        tiers:
          type: array
          description: Available tier labels for households in this book
          items:
            type: object
            required:
              - value
              - label
            properties:
              value:
                type: integer
                description: Numeric tier value
                example: 1
              label:
                type: string
                description: Display label for the tier
                example: A-tier
        teams:
          type: array
          description: Teams in the book's company
          items:
            type: object
            required:
              - id
              - name
            properties:
              id:
                type: string
                description: Team ID
              name:
                type: string
                description: Team name
                example: Advisory Team
    BookUser:
      allOf:
        - $ref: '#/components/schemas/User'
        - type: object
          required:
            - role
          properties:
            role:
              type: string
              enum:
                - principal
                - contributor
                - viewer
              description: The user's role in this book
              example: contributor
    User:
      type: object
      required:
        - id
        - email
        - first_name
        - last_name
      properties:
        id:
          type: string
          description: The ID of the user
          example: abc123xyz
        email:
          type: string
          format: email
          description: Email address of the user
          example: user@example.com
        first_name:
          type: string
          nullable: true
          description: First name of the user
          example: John
        last_name:
          type: string
          nullable: true
          description: Last name of the user
          example: Doe
        api_access:
          type: object
          description: >-
            Authentication details for the current personal access token. Only
            present on /v1/me when authenticating with a PAT.
          properties:
            auth_type:
              type: string
              enum:
                - personal_access_token
              example: personal_access_token
            scope:
              type: string
              enum:
                - read_only
                - read_write
              example: read_write
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      bearerFormat: OAuth
      description: OAuth 2.0 Bearer Token from Clerk authentication

````