---
title: "Create a project"
method: POST
path: "/me/projects"
tags: ["Projects\\Essentials"]
---

# Create a project

`POST /me/projects`

This method creates a new project for the specified user.

## Request body

- object
  - `name` string, required — The name of the project.

## Response `201`

The project was created.

- Project
  - `created_time` string, required — The time in ISO 8601 format when the project was created.
  - `metadata` object, required — The project's metadata.
    - `connections` object, required — A list of resource URIs related to the project.
      - `videos` object, required — A standard connection object indicating how to get all the videos in this project.
        - `options` string[], required — An array of HTTP methods permitted on this URI.
        - `total` number, required — The total number of videos on this connection.
        - `uri` string, required — The API URI that resolves to the connection data.
  - `modified_time` string, required — The time in ISO 8601 format when the project was last modified.
  - `name` string, required — The name of the folder.
  - `resource_key` string, required — The resource key string of the project.
  - `uri` string, required — The URI of the project.
  - `user` User, required
    - `account` 'basic' | 'business' | 'live_business' | 'live_premium' | 'live_pro' | 'plus' | 'pro' | 'pro_unlimited' | 'producer', required — The user's account type: Option descriptions: * `basic` - The user has a Vimeo Basic subscription. * `business` - The user has a Vimeo Business subscription. * `live_business` - The user has a Vimeo Business Live subscription. * `live_premium` - The user has a Vimeo Premium subscription. * `live_pro` - The user has a Vimeo PRO Live subscription. * `plus` - The user has a Vimeo Plus subscription. * `pro` - The user has a Vimeo Pro subscription. * `pro_unlimited` - The user has a Vimeo PRO Unlimited subscription. * `producer` - The user has a Vimeo Producer subscription.
    - `bio` string, nullable, required — The user's bio.
    - `content_filter` string[] — The user's content filters: Option descriptions: * `drugs` - Drugs or alcohol use. * `language` - Profanity or sexually suggestive content. * `nudity` - Nudity. * `safe` - Suitable for all audiences. * `unrated` - No rating. * `violence` - Violent or graphic content.
    - `created_time` string, required — The time in ISO 8601 format when the user account was created.
    - `email` string — The user's email address. This data requires a bearer token with the `email` scope.
    - `link` string, required — The absolute URL of this user's profile page.
    - `location` string, nullable, required — The user's location.
    - `metadata` object, required — The user's metadata.
      - `connections` object, required — The list of resource URIs related to the user.
        - `albums` object, required — Information about the albums created by this user.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of albums on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `appearances` object, required — Information about the appearances of this user in other videos.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of appearances on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `block` object, required — Information on the users that the current user has blocked. This data requires a bearer token with the `private` scope.
          - `options` string[], required — An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.
          - `total` number, required — The total number of blocked users on this connection. This data requires a bearer token with the `private` scope.
          - `uri` string, required — The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.
        - `categories` object, required — Information about this user's followed categories.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of categories on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `channels` object, required — Information about this user's subscribed channels.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of channels on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `feed` object, required — Information about this user's feed.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `folders` object, required — Information about this user's folders.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of folders on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `followers` object, required — Information about the user's followers.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of followers on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `following` object, required — Information about the users that the current user is following.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of users on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `groups` object, required — Information about the groups created by this user.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of groups on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `likes` object, required — Information about the videos that this user has liked.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of likes on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `moderated_channels` object, required — Information about the channels that this user moderates.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of channels on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `pictures` object, required — Information about this user's portraits.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of pictures on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `portfolios` object, required — Information about this user's portfolios.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of portfolios on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `recommended_channels` object, required — A collection of recommended channels for the current user to follow. This data requires a bearer token with the `private` scope.
          - `options` string[], required — An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.
          - `total` number, required — The total number of channels on this connection. This data requires a bearer token with the `private` scope.
          - `uri` string, required — The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.
        - `recommended_users` object, required — A Collection of recommended users for the current user to follow. This data requires a bearer token with the `private` scope.
          - `options` string[], required — An array of HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.
          - `total` number, required — The total number of users on this connection. This data requires a bearer token with the `private` scope.
          - `uri` string, required — The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.
        - `shared` object, required — Information about the videos that have been shared with this user.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of videos on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `videos` object, required — Information about the videos uploaded by this user.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of videos on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `watched_videos` object, required — Information about the videos that this user has watched.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of videos on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
        - `watchlater` object, required — Information about the videos that this user wants to watch later.
          - `options` string[], required — An array of HTTP methods permitted on this URI.
          - `total` number, required — The total number of videos on this connection.
          - `uri` string, required — The API URI that resolves to the connection data.
      - `interactions` object, required
        - `add_privacy_user` object
          - `options` string[] — An array of the HTTP methods permitted on this URI. This data requires a bearer token with the `private` scope.
          - `uri` string — The API URI that resolves to the connection data. This data requires a bearer token with the `private` scope.
        - `block` object, required — Information related to the block status of this user.
          - `added` boolean, required — Whether a user is blocking the current user.
          - `added_time` string, nullable, required — The time in ISO 8601 format when the block occurred, or the null value if no block exists.
          - `options` string[], required — An array of the HTTP methods permitted on this URI.
          - `uri` string, required — The URI to block or unblock the user.
        - `follow` object, required — Information related to the followed status of this user.
          - `added` boolean, required — Whether a user is following the current user.
          - `options` string[], required — An array of the HTTP methods permitted on this URI.
          - `uri` string, required — The URI to follow the user.
        - `report` object, required — Information regarding where and how to report a user.
          - `options` string[], required — An array of the HTTP methods permitted on this URI.
          - `reason` string[], required — List of valid reasons for reporting a video.
          - `uri` string, required — The API URI that resolves to the connection data.
    - `name` string, required — The user's display name.
    - `pictures` Picture, required
      - `active` boolean, required — Whether this picture is the active picture for its parent resource.
      - `link` string — The upload URL for the picture. This field appears when you create the picture resource for the first time.
      - `resource_key` string, required — The picture's resource key string.
      - `sizes` object[], required — An array containing reference information about all available image files.
        - `height` number, nullable, required — The height of the image.
        - `link` string, required — The direct link to the image.
        - `link_with_play_button` string — The direct link to the image with a play button overlay.
        - `width` number, required — The width of the image.
      - `type` 'caution' | 'custom' | 'default', required — The type of the picture: Option descriptions: * `caution` - An image that is appropriate for all ages. * `custom` - A custom image for the video. * `default` - The default image for the video.
      - `uri` string, required — The picture's URI.
    - `preferences` object
      - `videos` object
        - `privacy` object
          - `add` boolean — Whether other users can add the user's videos.
          - `comments` 'anybody' | 'contacts' | 'nobody' — The user's privacy preference for comments: Option descriptions: * `anybody` - Anyone can comment on the user's videos. * `contacts` - Only contacts can comment on the user's videos. * `nobody` - No one can comment on the user's videos.
          - `download` boolean — Whether other users can download the user's videos.
          - `embed` 'private' | 'public' | 'whitelist' — The user's privacy preference for embeds: Option descriptions: * `private` - Only the user can embed their own videos. * `public` - Anyone can embed the user's videos. * `whitelist` - Only those on the whitelist can embed the user's videos.
          - `view` 'anybody' | 'contacts' | 'disable' | 'nobody' | 'password' | 'unlisted' | 'users' — The user's privacy preference for views: Option descriptions: * `anybody` - Anyone can view the user's videos. * `contacts` - Only contacts can view the user's videos. * `disable` - Views are disabled for the user's videos. * `nobody` - No one except the user can view the user's videos. * `password` - Only those with the password can view the user's videos. * `unlisted` - Anybody can view the user's videos if they have a link. * `users` - Only other Vimeo members can view the user's videos.
    - `resource_key` string, required — The user's resource key string.
    - `upload_quota` object, required — Appears only when the user has upload access and is looking at their own user record.
      - `lifetime` object, required — Information about the user's lifetime upload usage.
        - `free` number, nullable, required — The number of bytes remaining in your lifetime maximum.
        - `max` number, nullable, required — The total number of bytes that you can upload across the lifetime of your account.
        - `used` number, nullable, required — The number of bytes that you've already uploaded against your lifetime limit.
      - `periodic` object, required — Information about the user's usage for the current period.
        - `free` number, nullable, required — The number of bytes remaining in your upload quota for the current period.
        - `max` number, nullable, required — The total number of bytes that you can upload per period.
        - `reset_date` string, nullable, required — The time in ISO 8601 format when your upload quota resets.
        - `used` number, nullable, required — The number of bytes that you've already uploaded against your quota in the current period.
      - `space` object, required — Information about the user's upload space remaining for the current period.
        - `free` number, required — The number of bytes remaining in your upload quota.
        - `max` number, nullable, required — The maximum number of bytes allotted to your upload quota.
        - `showing` 'lifetime' | 'periodic', required — Whether the values of the upload_quota.space fields are for the lifetime quota or the periodic quota.
        - `used` number, required — The number of bytes that you've already uploaded against your quota.
    - `uri` string, required — The user's canonical relative URI.
    - `websites` object[], required — The user's websites.
      - `description` string, nullable, required — The website's description.
      - `link` string, required — The URL of the website.
      - `name` string, nullable, required — The name of the website.

## Other responses

- `400` — * Error code 2205: The input is empty. * Error code 2204: The input is invalid.
- `401` — Error code 8000: The user credentials are invalid.
- `403` — Error code 3200: The authenticated user can't create projects.

---

[API](https://skmtc.net/vimeo/apis/vimeo-api.md) · [All operations](https://skmtc.net/vimeo/apis/vimeo-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vimeo/vimeo-api/revisions/ea882e0224a4/schema)
