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

# Create project

`POST /account/projects`

Create a new project. Institutions with item-type based metadata enabled wrap metadata in a `fields` object (`title`, `description`, `funding_list`). Institutions without item-type based metadata can use the legacy flat-payload form. `funding_list` entries accept either `{"id": <int>}` (reference an existing record) or `{"title": "..."}` (mint a new user-defined entry). Unrecognised field names inside `fields` (e.g. a typo) are rejected with 422.

## Request body

- ProjectCreate
  - `title` string — The title for this project. Required, 3 - 1000 characters. Legacy requests send it at the top level; requests for institutions with item-type based metadata enabled send it inside the `fields` object, where it is validated. Not listed in top-level `required` because those payloads carry it within `fields`.
  - `description` string — Project description
  - `funding` string — Grant number or organization(s) that funded this project. Up to 2000 characters permitted.
  - `funding_list` FundingCreate[] — Funding creation / update items
    - `id` integer — A funding ID as returned by the Funding Search endpoint. Use either id or title, not both.
    - `title` string — The title of the new user created funding. Use either title or id, not both.
  - `group_id` integer — Only if project type is group.
  - `custom_fields` object — List of key, values pairs to be associated with the project
  - `custom_fields_list` CustomArticleFieldAdd[] — List of custom fields values, supersedes custom_fields parameter
    - `name` string, required — Custom metadata name
    - `value` union, required — Custom metadata value (can be either a string, an array of strings, or empty)
      - string
      - string[]
      - object
  - `fields` object — Institutions with item-type based metadata only: all metadata fields keyed by underlying field name (e.g. title, description, funding_list). When present, the fields object is the authoritative source for all metadata; top-level metadata keys are ignored.

## Response `201`

Created

- CreateProjectResponse
  - `entity_id` integer, required — Figshare ID of the entity
  - `location` string, url, required — Url for entity

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `500` — Internal Server Error

---

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