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

# Quickstart

> Get started with the Enter Theatre API

## Make Your First Request

Get up and running with the Enter Theatre API in under a minute.

### Step 1: Choose an Endpoint

The simplest way to start is by fetching the list of all shows:

<CodeGroup>
  ```bash cURL theme={null}
  curl https://entertheatre.com/api/shows
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://entertheatre.com/api/shows');
  const shows = await response.json();
  console.log(shows);
  ```

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

  response = requests.get('https://entertheatre.com/api/shows')
  shows = response.json()
  print(shows)
  ```
</CodeGroup>

### Step 2: Explore the Response

You'll receive an array of show objects:

```json theme={null}
[
  {
    "id": "abc123",
    "name": "The Phantom of the Opera",
    "type": "musical",
    "description": "Andrew Lloyd Webber's legendary musical...",
    "image": "https://example.com/phantom.jpg",
    "booking_until": "2025-06-30"
  },
  {
    "id": "def456",
    "name": "Hamilton",
    "type": "musical",
    "description": "The story of America's founding father...",
    "image": "https://example.com/hamilton.jpg",
    "booking_until": "2025-12-31"
  }
]
```

### Step 3: Get More Details

Fetch a specific show by ID:

<CodeGroup>
  ```bash cURL theme={null}
  curl https://entertheatre.com/api/shows/abc123
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://entertheatre.com/api/shows/abc123');
  const show = await response.json();
  console.log(show);
  ```

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

  response = requests.get('https://entertheatre.com/api/shows/abc123')
  show = response.json()
  print(show)
  ```
</CodeGroup>

## Common Use Cases

<AccordionGroup>
  <Accordion title="List all theatres with their current shows">
    ```bash theme={null}
    curl https://entertheatre.com/api/theatres
    ```

    The response includes venue details and currently running productions.
  </Accordion>

  <Accordion title="Get cast members for a specific production">
    ```bash theme={null}
    curl https://entertheatre.com/api/cast-members?production_id=xyz789
    ```

    Returns all cast members with their roles and billing order.
  </Accordion>

  <Accordion title="Find productions at a specific theatre">
    ```bash theme={null}
    curl https://entertheatre.com/api/productions?theatre_id=theatre123
    ```

    Filter productions by theatre venue.
  </Accordion>
</AccordionGroup>

## Rate Limits

The public API is limited to **100 requests per day** per IP address. For production use, get an API key for **10,000 requests per day**:

```bash theme={null}
curl https://entertheatre.com/api/shows \
  -H "Authorization: Bearer et_your_api_key"
```

Get your API key at [entertheatre.com/dashboard/api-keys](https://entertheatre.com/dashboard/api-keys).

## Next Steps

<CardGroup cols={2}>
  <Card title="API Reference" icon="book" href="/api-reference/introduction">
    Explore the complete API documentation.
  </Card>

  <Card title="Authentication" icon="key" href="/authentication">
    Get an API key for higher rate limits.
  </Card>
</CardGroup>
