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

# List Classrooms

> Retrieve a paginated list of all classrooms

## Authentication

<ParamField header="Authorization" type="string" required>
  Bearer token for authentication
</ParamField>

## Query Parameters

<ParamField query="search" type="string">
  Search classrooms by name or description
</ParamField>

<ParamField query="page" type="integer">
  Page number for pagination
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET https://api.chessplay.io/api/v1/classrooms/ \
    -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
  ```

  ```python Python theme={null}
  import requests

  headers = {"Authorization": "Bearer YOUR_ACCESS_TOKEN"}
  response = requests.get(
      "https://api.chessplay.io/api/v1/classrooms/",
      headers=headers
  )
  classrooms = response.json()
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.chessplay.io/api/v1/classrooms/', {
    headers: { 'Authorization': 'Bearer YOUR_ACCESS_TOKEN' }
  });
  const classrooms = await response.json();
  ```
</RequestExample>

<ResponseExample>
  ```json 200 Success theme={null}
  {
    "count": 10,
    "next": "https://api.chessplay.io/api/v1/classrooms/?page=2",
    "previous": null,
    "results": [
      {
        "id": 1,
        "name": "Beginner Chess",
        "description": "Introduction to chess",
        "coach": {
          "id": 5,
          "username": "coach_john",
          "first_name": "John",
          "last_name": "Doe"
        },
        "students": [...],
        "start_time": "2024-01-20T10:00:00Z",
        "end_time": "2024-01-20T11:00:00Z",
        "created": "2024-01-15T10:30:00Z"
      }
    ]
  }
  ```
</ResponseExample>
