---
title: "Get project details"
method: GET
path: "/projects/{project_id}"
tags: ["API Endpoints"]
---

# Get project details

`GET /projects/{project_id}`

Get a detailed project summary including all media files, compositions,
and existing publishes.

Returns the project's id, name, drive_id, a map of media files (keyed by
display path) with type and duration, a list of compositions with id,
name, duration, and media type, and a list of successfully published
share pages with their URLs, access levels, and publish times.

Use this to inspect a project's contents before editing or importing media,
or to retrieve existing share URLs without triggering a republish.

## Path parameters

- `project_id` string, uuid, required

## Response `200`

Project details retrieved successfully

- object
  - `id` string, uuid, required — Project ID
  - `name` string, required — Project name
  - `drive_id` string, uuid, required — Drive ID the project belongs to
  - `created_at` string, date-time, required — When the project was created (ISO 8601)
  - `updated_at` string, date-time, required — When the project was last updated (ISO 8601)
  - `folder_path` string — Full folder path for the project (e.g. "Clients/Acme/Videos"). Absent when the project is at the drive root.
  - `media_files` object, required — Map of display path to media file info
  - `compositions` object[], required — Compositions in the project
    - `id` string, uuid, required — Composition ID
    - `name` string, required — Composition name
    - `duration` number, float — Duration in seconds
    - `media_type` string — Media type of the composition
  - `publishes` object[], required — Successfully published share pages for this project. Each entry represents a composition that has been published and is accessible via its share_url.
    - `share_url` string, uri, required — URL of the published share page
    - `composition_id` string, uuid, required — ID of the composition that was published
    - `access_level` 'public' | 'unlisted' | 'drive' | 'private' | 'password', required — Access level of the published share page
    - `media_type` 'video' | 'audio' | 'audiogram', required — Media type of the published output
    - `published_at` string, date-time, required — When the publish was created (ISO 8601)
    - `updated_at` string, date-time, required — When the publish was last updated (ISO 8601)
    - `name` string, required — Name of the published share page

## Other responses

- `400` — Bad request - `project_id` is not a valid UUID
- `401` — Unauthorized - invalid or missing authentication token
- `403` — Forbidden - user does not have access to this project
- `404` — Project not found
- `429` — Too many requests - rate limit exceeded. Use the `Retry-After` header to determine when to retry.

---

[API](https://skmtc.dev/descriptapi/apis/descript-api.md) · [All operations](https://skmtc.dev/descriptapi/apis/descript-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/descriptapi/descript-api/revisions/04c0005aef70/schema)
