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

# Enable Project

> Switch a project on so viewers are admitted.

Switch a project on. Viewers are admitted from the moment the call returns. Idempotent: calling it on a project that is already on succeeds with `changed: false`.

<Info>
  Scope: `control`. Team members need the Editor role or above. Limited to 30 control calls per minute per account.
</Info>

<Warning>
  Enabling a project with no approved build does not fail, but viewers will be refused with disconnect code `4009` until a build is approved. The response carries a warning when that is the case.
</Warning>

## Path parameters

<ParamField path="projectId" type="string" required>
  The project to switch on.
</ParamField>

## Headers

<ParamField header="x-api-key" type="string" required>
  An API key issued with the `control` scope.
</ParamField>

## Response

<ResponseField name="projectId" type="string">The project id.</ResponseField>
<ResponseField name="name" type="string">Project name.</ResponseField>
<ResponseField name="region" type="string">Project region.</ResponseField>
<ResponseField name="enabled" type="boolean">Always `true` after this call.</ResponseField>
<ResponseField name="changed" type="boolean">`false` if the project was already on.</ResponseField>
<ResponseField name="warnings" type="string[]">Empty, or one line per condition that will stop viewers even though the project is on.</ResponseField>

<RequestExample>
  ```bash cURL theme={"dark"}
  curl -X POST https://platform.streampixel.io/api/v1/projects/664f1a2b3c4d5e6f7a8b9c0d/enable \
    -H "x-api-key: $STREAMPIXEL_API_KEY"
  ```

  ```javascript Node.js theme={"dark"}
  const res = await fetch(
    'https://platform.streampixel.io/api/v1/projects/664f1a2b3c4d5e6f7a8b9c0d/enable',
    { method: 'POST', headers: { 'x-api-key': process.env.STREAMPIXEL_API_KEY } }
  );
  const { enabled, warnings } = await res.json();
  ```

  ```python Python theme={"dark"}
  import os, requests

  r = requests.post(
      "https://platform.streampixel.io/api/v1/projects/664f1a2b3c4d5e6f7a8b9c0d/enable",
      headers={"x-api-key": os.environ["STREAMPIXEL_API_KEY"]},
  )
  print(r.json())
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={"dark"}
  {
    "projectId": "664f1a2b3c4d5e6f7a8b9c0d",
    "name": "Showroom",
    "region": "Europe",
    "enabled": true,
    "changed": true,
    "warnings": []
  }
  ```

  ```json 200 OK (no approved build) theme={"dark"}
  {
    "projectId": "664f1a2b3c4d5e6f7a8b9c0d",
    "name": "Showroom",
    "region": "Europe",
    "enabled": true,
    "changed": true,
    "warnings": [
      "No approved build on this project: viewers will be refused with code 4009 until one is set active and approved."
    ]
  }
  ```
</ResponseExample>

## Errors

| Status | `code`          | Cause                                                                          |
| ------ | --------------- | ------------------------------------------------------------------------------ |
| `403`  | `API_KEY_SCOPE` | The key was issued without `control`.                                          |
| `403`  | —               | The project belongs to another account, or the team role cannot edit projects. |
| `404`  | `NOT_FOUND`     | No project with that id.                                                       |
| `429`  | `RATE_LIMITED`  | More than 30 control calls in a minute. `Retry-After` is set.                  |

## Next steps

<CardGroup cols={2}>
  <Card title="Disable Project" icon="toggle-off" href="/resources/api-reference/disable-project">
    Switch it off and end live sessions.
  </Card>

  <Card title="Set Active Build" icon="star" href="/resources/api-reference/set-active-build">
    Choose which build viewers get.
  </Card>
</CardGroup>
