---
title: "Create a project"
method: POST
path: "/project"
tags: ["projects"]
---

# Create a project

`POST /project`

## Response `200`

Expected response to a valid request

- Project
  - `slug` string, required — The slug of a project, used for vanity URLs. Regex: ```^[\w!@$()`.+,"\-']{3,64}$```
  - `title` string, required — The title or name of the project
  - `description` string, required — A short description of the project
  - `categories` string[], required — A list of the categories that the project has
  - `client_side` 'required' | 'optional' | 'unsupported' | 'unknown', required — The client side support of the project
  - `server_side` 'required' | 'optional' | 'unsupported' | 'unknown', required — The server side support of the project
  - `body` string, required — A long form description of the project
  - `status` 'approved' | 'archived' | 'rejected' | 'draft' | 'unlisted' | 'processing' | 'withheld' | 'scheduled' | 'private' | 'unknown', required — The status of the project
  - `requested_status` 'approved' | 'archived' | 'unlisted' | 'private' | 'draft', nullable — The requested status when submitting for review or scheduling the project for release
  - `additional_categories` string[] — A list of categories which are searchable but non-primary
  - `issues_url` string, nullable — An optional link to where to submit bugs or issues with the project
  - `source_url` string, nullable — An optional link to the source code of the project
  - `wiki_url` string, nullable — An optional link to the project's wiki page or other relevant information
  - `discord_url` string, nullable — An optional invite link to the project's discord
  - `donation_urls` ProjectDonationURL[] — A list of donation links for the project
    - `id` string — The ID of the donation platform
    - `platform` string — The donation platform this link is to
    - `url` string — The URL of the donation platform and user
  - `project_type` 'mod' | 'modpack' | 'resourcepack' | 'shader', required — The project type of the project
  - `downloads` integer, required — The total number of downloads of the project
  - `icon_url` string, nullable — The URL of the project's icon
  - `color` integer, nullable — The RGB color of the project, automatically generated from the project icon
  - `thread_id` string — The ID of the moderation thread associated with this project
  - `monetization_status` 'monetized' | 'demonetized' | 'force-demonetized'
  - `id` string, required — The ID of the project, encoded as a base62 string
  - `team` string, required — The ID of the team that has ownership of this project
  - `body_url` string, nullable — The link to the long description of the project. Always null, only kept for legacy compatibility.
  - `moderator_message` ModeratorMessage, nullable — A message that a moderator sent regarding the project
    - `message` string — The message that a moderator has left for the project
    - `body` string, nullable — The longer body of the message that a moderator has left for the project
  - `published` string, ISO-8601, required — The date the project was published
  - `updated` string, ISO-8601, required — The date the project was last updated
  - `approved` string, ISO-8601, nullable — The date the project's status was set to an approved status
  - `queued` string, ISO-8601, nullable — The date the project's status was submitted to moderators for review
  - `followers` integer, required — The total number of users following the project
  - `license` ProjectLicense — The license of the project
    - `id` string — The SPDX license ID of a project
    - `name` string — The long name of a license
    - `url` string, nullable — The URL to this license
  - `versions` string[] — A list of the version IDs of the project (will never be empty unless `draft` status)
  - `game_versions` string[] — A list of all of the game versions supported by the project
  - `loaders` string[] — A list of all of the loaders supported by the project
  - `gallery` GalleryImage[] — A list of images that have been uploaded to the project's gallery
    - `url` string, required — The URL of the gallery image
    - `featured` boolean, required — Whether the image is featured in the gallery
    - `title` string, nullable — The title of the gallery image
    - `description` string, nullable — The description of the gallery image
    - `created` string, ISO-8601, required — The date and time the gallery image was created
    - `ordering` integer — The order of the gallery image. Gallery images are sorted by this field and then alphabetically by title.

## Other responses

- `400` — Request was invalid, see given error
- `401` — Incorrect token scopes or no authorization to access the requested item(s)

---

[API](https://skmtc.net/modrinth/apis/labrinth.md) · [All operations](https://skmtc.net/modrinth/apis/labrinth/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/modrinth/labrinth/versions/439f357e772d/schema)
