# Get a project

`GET https://api.vidmoat.com/v1/projects/{id}`

- Scope: `projects.read`
- Cost: Free

One project. The default `clips` view lists tracks and clips; `?view=document` returns the full edit document.

### Path parameters

- `id` (string, required): The project id.

### Query parameters

- `view` (enum, optional, default `clips`): How much to return. One of `summary`, `clips`, `document`.

## Response

Returns `200`.

### Response fields

- `project` (object): The project in the chosen view.
  - `id` (string): Project id.
  - `name` (string): Project name.
  - `createdAt` (string): ISO 8601 time.
  - `updatedAt` (string): ISO 8601 time.
  - `durationSec` (number): End of the last clip, in seconds.
  - `clipCount` (integer): Number of clips on the timeline.
  - `settings` (object): Output settings.
    - `aspectRatio` (string): For example `16:9`.
    - `width` (integer): Pixels.
    - `height` (integer): Pixels.
    - `fps` (number): Frames per second.
    - `background` (string): CSS colour.
  - `workspace` (object or null): The workspace it is filed in: `{ id, name }`, or `null`.
  - `tracks` (array): Only in the `clips` and `document` views. The timeline tracks.
  - `clips` (array): Only in the `clips` view: a summary per clip (`id`, `type`, `name`, `start`, `duration`, `trackIndex`, and `src`, `text`, `effects`, `speed`, `keyframedProps` when set).
  - `document` (object): Only in the `document` view: the full edit document, verbatim.

## Errors

Besides the errors any request can get ([authentication](https://developer.vidmoat.com/developer/docs/authentication#when-a-request-is-refused), [rate limits](https://developer.vidmoat.com/developer/docs/rate-limits)):

| Status | Code | When |
| --- | --- | --- |
| 404 | [`not_found`](https://developer.vidmoat.com/developer/docs/errors#not_found) | No such project, or it is not yours. The two are indistinguishable on purpose. |

## Request examples

```bash curl
curl https://api.vidmoat.com/v1/projects/$ID \
  -H "Authorization: Bearer $VIDMOAT_KEY"
```

```js Node
const ID = 'YOUR_PROJECT_ID';

const res = await fetch(`https://api.vidmoat.com/v1/projects/${ID}`, {
  headers: {
    Authorization: `Bearer ${process.env.VIDMOAT_KEY}`,
  },
});
const data = await res.json();
if (!res.ok) throw new Error(data.error?.message ?? `HTTP ${res.status}`);
console.log(data);
```

```python Python
import os
import requests

ID = "YOUR_PROJECT_ID"

res = requests.get(
    f"https://api.vidmoat.com/v1/projects/{ID}",
    headers={"Authorization": f"Bearer {os.environ['VIDMOAT_KEY']}"},
    timeout=60,
)
res.raise_for_status()
print(res.json())
```

## Example response

```json
{
  "project": {
    "id": "cm1abc",
    "name": "Launch teaser",
    "createdAt": "2026-09-30T10:00:00.000Z",
    "updatedAt": "2026-10-02T09:00:00.000Z",
    "durationSec": 12.5,
    "clipCount": 4,
    "settings": { "aspectRatio": "9:16", "width": 1080, "height": 1920, "fps": 30, "background": "#000000" },
    "workspace": null
  }
}
```

---

Source: https://developer.vidmoat.com/developer/docs/api/projects/get-project
Previous: [Create a project](https://developer.vidmoat.com/developer/docs/api/projects/create-project.md)
Next: [Update a project](https://developer.vidmoat.com/developer/docs/api/projects/update-project.md)
All documentation: https://developer.vidmoat.com/llms-full.txt
