> ## 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.

# Get Project

> One project's settings, builds and state.

Return one project in full: streaming settings, session rules, access mode, allowed domains, webhook configuration and the list of uploaded builds. Use [List Builds](/resources/api-reference/list-builds) when you only need the builds, and [Update Project Settings](/resources/api-reference/update-project-settings) to change what you read here.

<Info>
  Scope: `read`. This endpoint predates the current API and still requires your own `userId` as a query parameter. Any other value is refused with `403`.
</Info>

## Path parameters

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

## Query parameters

<ParamField query="userId" type="string" required>
  Your account's user id. See [Finding your IDs](/resources/api-reference/finding-your-user-and-project-ids).
</ParamField>

## Headers

<ParamField header="x-api-key" type="string" required>
  Your Streampixel API key.
</ParamField>

## Response

The project document. The fields below are the ones integrations rely on; others may appear.

<ResponseField name="_id" type="string">Project id.</ResponseField>
<ResponseField name="name" type="string">Project name.</ResponseField>
<ResponseField name="region" type="string">`US-East-1`, `Europe`, `Asia Pacific` or `Australia`.</ResponseField>
<ResponseField name="status" type="boolean">`true` when the project is on and admitting viewers.</ResponseField>
<ResponseField name="subscriptionStatus" type="string">The project's plan state.</ResponseField>
<ResponseField name="allowedUsers" type="number">Concurrent viewers the project may run.</ResponseField>
<ResponseField name="appName" type="string">Folder name of the build currently served; matches a build's `appPath`.</ResponseField>
<ResponseField name="resX / resY" type="number">Render resolution.</ResponseField>
<ResponseField name="primaryCodec / fallbaCodec" type="string">Video codecs.</ResponseField>
<ResponseField name="minBitrate / startBitrate / maxBitrate" type="number">kbps.</ResponseField>
<ResponseField name="maxRunTime" type="number">Maximum session length in minutes.</ResponseField>
<ResponseField name="afktimeout" type="number">Inactivity timeout in seconds.</ResponseField>
<ResponseField name="accessMode" type="string">`public`, `password`, `sso` or `programmatic`.</ResponseField>
<ResponseField name="validPathUrl" type="string[]">Domains allowed to embed the player. Empty means any.</ResponseField>
<ResponseField name="autoRelease" type="boolean">Whether processed builds are distributed automatically.</ResponseField>
<ResponseField name="webhookUrl / webhookEvents" type="string / string[]">Webhook configuration.</ResponseField>
<ResponseField name="files" type="array">Uploaded builds: `_id`, `status`, `date`, `url`, `appPath`, `unrealVersion`, `psVersion`, `objection`, `statusUpdatedAt`.</ResponseField>
<ResponseField name="createdAt" type="string">ISO 8601.</ResponseField>

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

  ```javascript Node.js theme={"dark"}
  const url = new URL('https://platform.streampixel.io/api/v1/projects/664f1a2b3c4d5e6f7a8b9c0d');
  url.searchParams.set('userId', process.env.STREAMPIXEL_USER_ID);
  const project = await (await fetch(url, { headers: { 'x-api-key': process.env.STREAMPIXEL_API_KEY } })).json();
  console.log(project.name, project.status ? 'on' : 'off', project.region);
  ```

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

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

<ResponseExample>
  ```json 200 OK (abridged) theme={"dark"}
  {
    "_id": "664f1a2b3c4d5e6f7a8b9c0d",
    "name": "Showroom",
    "region": "Europe",
    "status": true,
    "subscriptionStatus": "active",
    "allowedUsers": 4,
    "appName": "665a2b3c4d5e6f7a8b9c0e1f",
    "resX": 1920,
    "resY": 1080,
    "primaryCodec": "H264",
    "fallbaCodec": "VP8",
    "minBitrate": 2000,
    "startBitrate": 6000,
    "maxBitrate": 12000,
    "maxRunTime": 30,
    "afktimeout": 120,
    "accessMode": "public",
    "validPathUrl": ["app.example.com"],
    "autoRelease": true,
    "webhookUrl": "https://ci.example.com/hooks/streampixel",
    "webhookEvents": ["build.approved", "build.rejected"],
    "files": [
      { "_id": "665a2b3c4d5e6f7a8b9c0e1f", "status": "Approved", "date": "2026-09-20T15:02:11.000Z", "appPath": "665a2b3c4d5e6f7a8b9c0e1f", "unrealVersion": "5.4", "psVersion": 2 }
    ],
    "createdAt": "2026-05-02T10:14:52.000Z"
  }
  ```
</ResponseExample>

## Errors

| Status | Cause                                                                         |
| ------ | ----------------------------------------------------------------------------- |
| `400`  | `userId` missing.                                                             |
| `403`  | `userId` is not the key's account, or the project belongs to another account. |
| `404`  | No project with that id.                                                      |
