> This page is for version v1.
> For other versions, use one of these documentation indexes:
> - v2 (default): https://autodesk-poc.ferndocs.com/v2/llms.txt
> - v1: https://autodesk-poc.ferndocs.com/v1/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://autodesk-poc.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://autodesk-poc.ferndocs.com/_mcp/server.

# Create project

POST https://developer.api.autodesk.com/construction/admin/v1/accounts/{accountId}/projects
Content-Type: application/json

Creates a new project in the specified hub. You can create the project directly, or clone it from a project template.

- When you create a project directly (not from a template), this endpoint automatically adds all of the products that are associated with the current hub to the project and activates them.
- To clone the project from a template, provide the `template` object in the request to specify the project template ID. The products and settings in the template are copied to the new project, and the products associated with the current hub are ignored.

Note that currently, a project that is cloned from a template *does not* have *any* project members assigned initially. You can assign all of the template project members to the project in bulk by calling [POST projects/:projectId/users](https://aps.autodesk.com/en/docs/acc/v1/reference/http/admin-projects-project-Id-users-POST/) to assign a project administrator to the project. This administrator can be any user who is currently in the same hub as the project. This triggers the automatic process of assigning the template project members to the cloned project and activating them.

You can also create a project template. Include the `classification` field in the request with a value of `template`, and set the value of the `type` field to `Template Project`. You must provide both of these values, otherwise the request returns a `400` error. Use the Forma Build UI to edit the template details and permissions, add project members to the template, and configure the template's notification settings.

Note that you cannot create a project template from another project template, but you can base it on a production project. Set the value of the `template.projectId` field to the `id` of the production project. The new project template is not completely configured for use, but it will get you started.

For more information about creating projects, see the [Create and Configure Projects](https://aps.autodesk.com/en/docs/acc/v1/overview/field-guide/admin/) tutorial.

Note that the `Authorization` header token can be obtained either via a [three-legged](https://aps.autodesk.com/en/docs/oauth/v2/tutorials/get-3-legged-token/) OAuth flow, or via a [two-legged](https://aps.autodesk.com/en/docs/oauth/v2/tutorials/get-2-legged-token/) Oauth flow *with user impersonation*, for which the `User-Id` header is required.

Note that the `products` array is ignored in the request. However, the products in the project do appear in the response for this and other endpoints.

**Note:** This operation is not backward compatible with BIM 360 projects. It only works with Autodesk Construction Cloud projects.

Reference: https://autodesk-poc.ferndocs.com/v1/acc-admin/projects/create-project

## Authentication

- OAuth2 — send the obtained token as `Authorization: Bearer <token>`
- `Authorization` header (bearer token, required) — **OAuth 2.0 (3-legged)** — user context required. Also accepts a Secure Service Account (SSA) token, which is headless like a two-legged flow but classified as three-legged because it preserves user context. **Authorization Code Flow** Authorization URL: [https://developer.api.autodesk.com/authentication/v2/authorize](https://developer.api.autodesk.com/authentication/v2/authorize) Token URL: [https://developer.api.autodesk.com/authentication/v2/token](https://developer.api.autodesk.com/authentication/v2/token) Refresh URL: [https://developer.api.autodesk.com/authentication/v2/token](https://developer.api.autodesk.com/authentication/v2/token) Scopes: - `data:read` — read your data - `account:read` — read account and project data - `account:write` — modify account and project data

## Request

### Path parameters

- `accountId` (string, required) — The ID of the hub that contains the projects. This corresponds to the hub ID used in the [Data Management API](https://aps.autodesk.com/en/docs/data/v2/), with the "**b.**\" prefix removed. For example, `b.c8b0c73d-3ae9` becomes `c8b0c73d-3ae9`.

### Headers

- `Accept-Language` (string, optional, default: en) — This header is not currently supported in the hub Admin API.
- `Region` (string, optional) — Specifies the region where your request should be routed. If not set, the request is routed automatically, which may result in a slight increase in latency. Possible values: `US`, `EMEA`. For a complete list of supported regions, see the [Regions](https://aps.autodesk.com/en/docs/acc/v1/overview/acc-regions/) page.
- `User-Id` (string, optional) — The ID of a user on whose behalf your request is acting. Your app has access to all users specified by the administrator in the SaaS integrations UI. Provide this header value to identify the user to be affected by the request. You can use either the user's Forma ID (`id`), or their Autodesk ID (`autodeskId`). Note that this header is required for hub Admin POST, PATCH, and DELETE endpoints if you want to use a 2-legged authentication context. This header is optional for hub Admin GET endpoints.

### Body (application/json)

This endpoint expects an object.

- `name` (string, required) — The name of the project.
- `type` (string, required) — The type of the project. Any value is accepted, but the following are recommended: Possible values: `Convention Center`, `Data Center`, `Hotel / Motel`, `Office`, `Parking Structure / Garage`, `Performing Arts`, `Restaurant`, `Retail`, `Stadium / Arena`, `Theme Park`, `Warehouse (non-manufacturing)`, `Assisted Living / Nursing Home`, `Hospital`, `Medical Laboratory`, `Medical Office`, `OutPatient Surgery Center`, `Court House`, `Dormitory`, `Education Facility`, `Government Building`, `Library`, `Military Facility`, `Museum`, `Prison / Correctional Facility`, `Recreation Building`, `Religious Building`, `Research Facility / Laboratory`, `Multi-Family Housing`, `Single-Family Housing`, `Airport`, `Bridge`, `Canal / Waterway`, `Dams / Flood Control / Reservoirs`, `Harbor / River Development`, `Rail`, `Seaport`, `Streets / Roads / Highways`, `Transportation Building`, `Tunnel`, `Waste Water / Sewers`, `Water Supply`, `Manufacturing / Factory`, `Mining Facility`, `Oil & Gas`, `Plant`, `Power Plant`, `Solar Farm`, `Utilities`, `Wind Farm`, `Demonstration Project`, `Template Project` and `Training Project`.
- `id` (string, optional) — The internally generated ID for the project.
- `startDate` (date, optional) — The estimated start date for the project, in ISO 8601 format.
- `endDate` (date, optional) — The estimated end date for the project, in ISO 8601 format.
- `classification` (enum, optional, default: production) — The classification of the project. Possible values: - `production` – Standard project. - `template` – A project that serves as a template for creating new projects. - `component` – A placeholder project containing reusable components (e.g., forms). Only one component project is allowed per hub. Known as a library in the Forma UI. - `sample` – A single sample project automatically created for Forma trials (limited to one per hub).
  - Allowed values: `component`, `production`, `sample`, `template`
- `projectValue` (baseProject/properties/projectValue, optional) — Contains details about the estimated cost of the project, including the amount (`value`) and the currency (`currency`).
- `status` (enum, optional, default: active) — The status of the project. Possible values: `active`, `pending`, `archived` and `suspended`.
  - Allowed values: `active`, `pending`, `archived`, `suspended`
- `jobNumber` (string, optional) — A user-defined identifier for the project. This value is assigned when the project is created and can be used to filter projects. It supports partial matches when used with `filterTextMatch`.
- `addressLine1` (string, optional) — The first line of the project’s address.
- `addressLine2` (string, optional) — Additional address details for the project location.
- `city` (string, optional) — The city wher the project is located.
- `stateOrProvince` (string, optional) — The state or province where the project is located. It must be a valid name or an ISO 3166-2 code. The provided state or province must exist in the country of the project.
- `postalCode` (string, optional) — The postal or ZIP code of the project location.
- `country` (string, optional) — The country where the project is located, using an ISO 3166-1 alpha-2 code.
- `latitude` (string, optional) — The latitude coordinate of the project location.
- `longitude` (string, optional) — The longitude coordinate of the project location.
- `timezone` (enum, optional) — The time zone where the project is located. It must be a valid IANA time zone name from the [IANA Time Zone Database](https://www.iana.org/time-zones) (e.g., `America/New_York`). If no time zone is set, this field may be `null`.
  - Allowed values: `Pacific/Honolulu`, `America/Juneau`, `America/Los_Angeles`, `America/Phoenix`, `America/Denver`, `America/Chicago`, `America/New_York`, `America/Indiana/Indianapolis`, `Pacific/Pago_Pago`, `Pacific/Midway`, `America/Tijuana`, `America/Chihuahua`, `America/Mazatlan`, `America/Guatemala`, `America/Mexico_City`, `America/Monterrey`, `America/Regina`, `America/Bogota`, `America/Lima`, `America/Caracas`, `America/Halifax`, `America/Guyana`, `America/La_Paz`, `America/Santiago`, `America/St_Johns`, `America/Sao_Paulo`, `America/Argentina/Buenos_Aires`, `America/Godthab`, `Atlantic/South_Georgia`, `Atlantic/Azores`, `Atlantic/Cape_Verde`, `Africa/Casablanca`, `Europe/Dublin`, `Europe/Lisbon`, `Europe/London`, `Africa/Monrovia`, `Etc/UTC`, `Europe/Amsterdam`, `Europe/Belgrade`, `Europe/Berlin`, `Europe/Bratislava`, `Europe/Brussels`, `Europe/Budapest`, `Europe/Copenhagen`, `Europe/Ljubljana`, `Europe/Madrid`, `Europe/Paris`, `Europe/Prague`, `Europe/Rome`, `Europe/Sarajevo`, `Europe/Skopje`, `Europe/Stockholm`, `Europe/Vienna`, `Europe/Warsaw`, `Africa/Algiers`, `Europe/Zagreb`, `Europe/Athens`, `Europe/Bucharest`, `Africa/Cairo`, `Africa/Harare`, `Europe/Helsinki`, `Europe/Istanbul`, `Asia/Jerusalem`, `Europe/Kiev`, `Africa/Johannesburg`, `Europe/Riga`, `Europe/Sofia`, `Europe/Tallinn`, `Europe/Vilnius`, `Asia/Baghdad`, `Asia/Kuwait`, `Europe/Minsk`, `Africa/Nairobi`, `Asia/Riyadh`, `Asia/Tehran`, `Asia/Muscat`, `Asia/Baku`, `Europe/Moscow`, `Asia/Tbilisi`, `Asia/Yerevan`, `Asia/Kabul`, `Asia/Karachi`, `Asia/Tashkent`, `Asia/Kolkata`, `Asia/Colombo`, `Asia/Kathmandu`, `Asia/Almaty`, `Asia/Dhaka`, `Asia/Yekaterinburg`, `Asia/Rangoon`, `Asia/Bangkok`, `Asia/Jakarta`, `Asia/Novosibirsk`, `Asia/Shanghai`, `Asia/Chongqing`, `Asia/Hong_Kong`, `Asia/Krasnoyarsk`, `Asia/Kuala_Lumpur`, `Australia/Perth`, `Asia/Singapore`, `Asia/Taipei`, `Asia/Ulaanbaatar`, `Asia/Urumqi`, `Asia/Irkutsk`, `Asia/Tokyo`, `Asia/Seoul`, `Australia/Adelaide`, `Australia/Darwin`, `Australia/Brisbane`, `Australia/Melbourne`, `Pacific/Guam`, `Australia/Hobart`, `Pacific/Port_Moresby`, `Australia/Sydney`, `Asia/Yakutsk`, `Pacific/Noumea`, `Asia/Vladivostok`, `Pacific/Auckland`, `Pacific/Fiji`, `Asia/Kamchatka`, `Asia/Magadan`, `Pacific/Majuro`, `Pacific/Guadalcanal`, `Pacific/Tongatapu`, `Pacific/Apia`, `Pacific/Fakaofo`
- `constructionType` (string, optional) — The type of construction for the project. Recommended values: `New Construction`, `Renovation`. Any value is accepted.
- `deliveryMethod` (string, optional) — The method used to deliver the project. Recommended values include `Design-Bid-Build`, `Construction Management (CM) at Risk`, and `Integrated Project Delivery (IPD)`. Any value is accepted.
- `contractType` (string, optional) — The type of contract for the project. For example, `Lump Sum`, `Cost Plus`, `Guaranteed Maximum Price`, `Unit Price`. Any value is accepted.
- `currentPhase` (string, optional) — The current phase of the project. Recommended values include, `Concept`, `Design`, `Bidding`, `Planning`, `Preconstruction`, `Construction`, `Commissioning`, `Warranty`, `Complete`, `Facility Management`, `Operation`, `Strategic Definition`, `Preparation and Brief`, `Concept Design`, `Developed Design`, `Technical Design`, `Construction`, `Handover and Close Out` and `In Use`. Any value is accepted.
- `businessUnitId` (string, optional) — The ID of the business unit that the project is associated with.
- `lastSignIn` (datetime, optional) — The timestamp of the last time someone signed into the project.
- `imageUrl` (string, optional) — The URL of the main image associated with the project. This field can be `null`.
- `thumbnailImageUrl` (string, optional) — The URL of the project’s thumbnail image. This field can be `null`.
- `createdAt` (datetime, optional) — The timestamp when the project was created, in ISO 8601 format. This value is set at creation and does not change.
- `updatedAt` (datetime, optional) — The timestamp when the project was last updated, in ISO 8601 format. This reflects changes to project fields but not updates to resources within the project.
- `memberGroupId` (string, optional) — Not relevant
- `adminGroupId` (string, optional) — Not relevant
- `accountId` (string, optional) — The hub ID associated with the project.
- `sheetCount` (integer, optional) — The total number of sheets associated with the project. Note that this field is relevant only in responses. It is ignored in requests.
- `products` (any, optional)
- `platform` (enum, optional, default: acc) — The APS platform where the project is stored. Possible values: `acc`, `bim360`. Note that this field is relevant only in responses. It is ignored in requests.
  - Allowed values: `acc`, `bim360`
- `companyCount` (integer, optional) — The total number of companies associated with the project. Note that this field is relevant only in responses. It is ignored in requests.
- `memberCount` (integer, optional) — The total number of members on the project. Note that this field is relevant only in responses. It is ignored in requests.
- `template` (projectTemplate, optional) — Information about a project in the current user's hub that is configured as a template from which to copy products and settings when creating a new project: - If you *include* this object in a [POST accounts/:accountId/projects](https://aps.autodesk.com/en/docs/acc/v1/reference/http/admin-accountsaccountidprojects-POST/) request, the cloned project's products and settings will match those of the template project. - If you *omit* this object from a [POST accounts/:accountId/projects](https://aps.autodesk.com/en/docs/acc/v1/reference/http/admin-accountsaccountidprojects-POST/) request, all of the current Forma hub's products are added to the cloned project and activated.

## Response

### 202

APS has received the request but not yet completed it.

- `id` (string, optional) — The internally generated ID for the project.
- `name` (string, optional) — The name of the project.
- `startDate` (date, optional) — The estimated start date for the project, in ISO 8601 format.
- `endDate` (date, optional) — The estimated end date for the project, in ISO 8601 format.
- `type` (string, optional) — The type of the project. Any value is accepted, but the following are recommended: Possible values: `Convention Center`, `Data Center`, `Hotel / Motel`, `Office`, `Parking Structure / Garage`, `Performing Arts`, `Restaurant`, `Retail`, `Stadium / Arena`, `Theme Park`, `Warehouse (non-manufacturing)`, `Assisted Living / Nursing Home`, `Hospital`, `Medical Laboratory`, `Medical Office`, `OutPatient Surgery Center`, `Court House`, `Dormitory`, `Education Facility`, `Government Building`, `Library`, `Military Facility`, `Museum`, `Prison / Correctional Facility`, `Recreation Building`, `Religious Building`, `Research Facility / Laboratory`, `Multi-Family Housing`, `Single-Family Housing`, `Airport`, `Bridge`, `Canal / Waterway`, `Dams / Flood Control / Reservoirs`, `Harbor / River Development`, `Rail`, `Seaport`, `Streets / Roads / Highways`, `Transportation Building`, `Tunnel`, `Waste Water / Sewers`, `Water Supply`, `Manufacturing / Factory`, `Mining Facility`, `Oil & Gas`, `Plant`, `Power Plant`, `Solar Farm`, `Utilities`, `Wind Farm`, `Demonstration Project`, `Template Project` and `Training Project`.
- `classification` (enum, optional, default: production) — The classification of the project. Possible values: - `production` – Standard project. - `template` – A project that serves as a template for creating new projects. - `component` – A placeholder project containing reusable components (e.g., forms). Only one component project is allowed per hub. Known as a library in the Forma UI. - `sample` – A single sample project automatically created for Forma trials (limited to one per hub).
  - Allowed values: `component`, `production`, `sample`, `template`
- `projectValue` (baseProject/properties/projectValue, optional) — Contains details about the estimated cost of the project, including the amount (`value`) and the currency (`currency`).
- `status` (enum, optional, default: active) — The status of the project. Possible values: `active`, `pending`, `archived` and `suspended`.
  - Allowed values: `active`, `pending`, `archived`, `suspended`
- `jobNumber` (string, optional) — A user-defined identifier for the project. This value is assigned when the project is created and can be used to filter projects. It supports partial matches when used with `filterTextMatch`.
- `addressLine1` (string, optional) — The first line of the project’s address.
- `addressLine2` (string, optional) — Additional address details for the project location.
- `city` (string, optional) — The city wher the project is located.
- `stateOrProvince` (string, optional) — The state or province where the project is located. It must be a valid name or an ISO 3166-2 code. The provided state or province must exist in the country of the project.
- `postalCode` (string, optional) — The postal or ZIP code of the project location.
- `country` (string, optional) — The country where the project is located, using an ISO 3166-1 alpha-2 code.
- `latitude` (string, optional) — The latitude coordinate of the project location.
- `longitude` (string, optional) — The longitude coordinate of the project location.
- `timezone` (enum, optional) — The time zone where the project is located. It must be a valid IANA time zone name from the [IANA Time Zone Database](https://www.iana.org/time-zones) (e.g., `America/New_York`). If no time zone is set, this field may be `null`.
  - Allowed values: `Pacific/Honolulu`, `America/Juneau`, `America/Los_Angeles`, `America/Phoenix`, `America/Denver`, `America/Chicago`, `America/New_York`, `America/Indiana/Indianapolis`, `Pacific/Pago_Pago`, `Pacific/Midway`, `America/Tijuana`, `America/Chihuahua`, `America/Mazatlan`, `America/Guatemala`, `America/Mexico_City`, `America/Monterrey`, `America/Regina`, `America/Bogota`, `America/Lima`, `America/Caracas`, `America/Halifax`, `America/Guyana`, `America/La_Paz`, `America/Santiago`, `America/St_Johns`, `America/Sao_Paulo`, `America/Argentina/Buenos_Aires`, `America/Godthab`, `Atlantic/South_Georgia`, `Atlantic/Azores`, `Atlantic/Cape_Verde`, `Africa/Casablanca`, `Europe/Dublin`, `Europe/Lisbon`, `Europe/London`, `Africa/Monrovia`, `Etc/UTC`, `Europe/Amsterdam`, `Europe/Belgrade`, `Europe/Berlin`, `Europe/Bratislava`, `Europe/Brussels`, `Europe/Budapest`, `Europe/Copenhagen`, `Europe/Ljubljana`, `Europe/Madrid`, `Europe/Paris`, `Europe/Prague`, `Europe/Rome`, `Europe/Sarajevo`, `Europe/Skopje`, `Europe/Stockholm`, `Europe/Vienna`, `Europe/Warsaw`, `Africa/Algiers`, `Europe/Zagreb`, `Europe/Athens`, `Europe/Bucharest`, `Africa/Cairo`, `Africa/Harare`, `Europe/Helsinki`, `Europe/Istanbul`, `Asia/Jerusalem`, `Europe/Kiev`, `Africa/Johannesburg`, `Europe/Riga`, `Europe/Sofia`, `Europe/Tallinn`, `Europe/Vilnius`, `Asia/Baghdad`, `Asia/Kuwait`, `Europe/Minsk`, `Africa/Nairobi`, `Asia/Riyadh`, `Asia/Tehran`, `Asia/Muscat`, `Asia/Baku`, `Europe/Moscow`, `Asia/Tbilisi`, `Asia/Yerevan`, `Asia/Kabul`, `Asia/Karachi`, `Asia/Tashkent`, `Asia/Kolkata`, `Asia/Colombo`, `Asia/Kathmandu`, `Asia/Almaty`, `Asia/Dhaka`, `Asia/Yekaterinburg`, `Asia/Rangoon`, `Asia/Bangkok`, `Asia/Jakarta`, `Asia/Novosibirsk`, `Asia/Shanghai`, `Asia/Chongqing`, `Asia/Hong_Kong`, `Asia/Krasnoyarsk`, `Asia/Kuala_Lumpur`, `Australia/Perth`, `Asia/Singapore`, `Asia/Taipei`, `Asia/Ulaanbaatar`, `Asia/Urumqi`, `Asia/Irkutsk`, `Asia/Tokyo`, `Asia/Seoul`, `Australia/Adelaide`, `Australia/Darwin`, `Australia/Brisbane`, `Australia/Melbourne`, `Pacific/Guam`, `Australia/Hobart`, `Pacific/Port_Moresby`, `Australia/Sydney`, `Asia/Yakutsk`, `Pacific/Noumea`, `Asia/Vladivostok`, `Pacific/Auckland`, `Pacific/Fiji`, `Asia/Kamchatka`, `Asia/Magadan`, `Pacific/Majuro`, `Pacific/Guadalcanal`, `Pacific/Tongatapu`, `Pacific/Apia`, `Pacific/Fakaofo`
- `constructionType` (string, optional) — The type of construction for the project. Recommended values: `New Construction`, `Renovation`. Any value is accepted.
- `deliveryMethod` (string, optional) — The method used to deliver the project. Recommended values include `Design-Bid-Build`, `Construction Management (CM) at Risk`, and `Integrated Project Delivery (IPD)`. Any value is accepted.
- `contractType` (string, optional) — The type of contract for the project. For example, `Lump Sum`, `Cost Plus`, `Guaranteed Maximum Price`, `Unit Price`. Any value is accepted.
- `currentPhase` (string, optional) — The current phase of the project. Recommended values include, `Concept`, `Design`, `Bidding`, `Planning`, `Preconstruction`, `Construction`, `Commissioning`, `Warranty`, `Complete`, `Facility Management`, `Operation`, `Strategic Definition`, `Preparation and Brief`, `Concept Design`, `Developed Design`, `Technical Design`, `Construction`, `Handover and Close Out` and `In Use`. Any value is accepted.
- `businessUnitId` (string, optional) — The ID of the business unit that the project is associated with.
- `lastSignIn` (datetime, optional) — The timestamp of the last time someone signed into the project.
- `imageUrl` (string, optional) — The URL of the main image associated with the project. This field can be `null`.
- `thumbnailImageUrl` (string, optional) — The URL of the project’s thumbnail image. This field can be `null`.
- `createdAt` (datetime, optional) — The timestamp when the project was created, in ISO 8601 format. This value is set at creation and does not change.
- `updatedAt` (datetime, optional) — The timestamp when the project was last updated, in ISO 8601 format. This reflects changes to project fields but not updates to resources within the project.
- `memberGroupId` (string, optional) — Not relevant
- `adminGroupId` (string, optional) — Not relevant
- `accountId` (string, optional) — The hub ID associated with the project.
- `sheetCount` (integer, optional) — The total number of sheets associated with the project. Note that this field is relevant only in responses. It is ignored in requests.
- `products` (any, optional)
- `platform` (enum, optional, default: acc) — The APS platform where the project is stored. Possible values: `acc`, `bim360`. Note that this field is relevant only in responses. It is ignored in requests.
  - Allowed values: `acc`, `bim360`
- `companyCount` (integer, optional) — The total number of companies associated with the project. Note that this field is relevant only in responses. It is ignored in requests.
- `memberCount` (integer, optional) — The total number of members on the project. Note that this field is relevant only in responses. It is ignored in requests.
- `templateId` (string, optional) — The ID of the project that was used as a template to create this project.
- `jobId` (string, optional) — Not relevant - we don't currently support this field.

## Errors

### 400 Bad Request Error

The request could not be understood by the server due to malformed syntax.

- `status` (integer, optional) — The status code for the error.
- `type` (string, optional) — HQ defined error code for the type of error.
- `title` (string, optional) — The title of the error. ex: Bad Request.
- `detail` (string, optional) — A detailed description of the error with possible suggestions for fixing them.
- `id` (string, optional) — A unique id for the request.
- `errors` (list of fieldError, optional) — List of field validation errors.

### 401 Unauthorized Error

Request has not been applied because it lacks valid authentication credentials for the target resource.

- `authenticationUrl` (string, optional) — The url used for authenticating the user.
- `status` (integer, optional) — The status code for the error.
- `type` (string, optional) — HQ defined error code for the type of error.
- `title` (string, optional) — The title of the error. ex: Bad Request.
- `detail` (string, optional) — A detailed description of the error with possible suggestions for fixing them.
- `id` (string, optional) — A unique id for the request.

### 403 Forbidden Error

The server understood the request but refuses to authorize it.

- `status` (integer, optional) — The status code for the error.
- `type` (string, optional) — HQ defined error code for the type of error.
- `title` (string, optional) — The title of the error. ex: Bad Request.
- `detail` (string, optional) — A detailed description of the error with possible suggestions for fixing them.
- `id` (string, optional) — A unique id for the request.

### 404 Not Found Error

The resource could not be found.

- `status` (integer, optional) — The status code for the error.
- `type` (string, optional) — HQ defined error code for the type of error.
- `title` (string, optional) — The title of the error. ex: Bad Request.
- `detail` (string, optional) — A detailed description of the error with possible suggestions for fixing them.
- `id` (string, optional) — A unique id for the request.

### 410 Gone Error

Access to the target resource is no longer available.

- `status` (integer, optional) — The status code for the error.
- `type` (string, optional) — HQ defined error code for the type of error.
- `title` (string, optional) — The title of the error. ex: Bad Request.
- `detail` (string, optional) — A detailed description of the error with possible suggestions for fixing them.
- `id` (string, optional) — A unique id for the request.

### 415 Unsupported Media Type Error

The server refuses to accept the request because the payload format is in an unsupported format.

- `status` (integer, optional) — The status code for the error.
- `type` (string, optional) — HQ defined error code for the type of error.
- `title` (string, optional) — The title of the error. ex: Bad Request.
- `detail` (string, optional) — A detailed description of the error with possible suggestions for fixing them.
- `id` (string, optional) — A unique id for the request.

### 429 Too Many Requests Error

User has sent too many requests in a given amount of time.

- `any`

### 500 Internal Server Error

An unexpected error occurred on the server.

- `status` (integer, optional) — The status code for the error.
- `type` (string, optional) — HQ defined error code for the type of error.
- `title` (string, optional) — The title of the error. ex: Bad Request.
- `detail` (string, optional) — A detailed description of the error with possible suggestions for fixing them.
- `id` (string, optional) — A unique id for the request.

### 503 Service Unavailable Error

Server is not ready to handle the request.

- `status` (integer, optional) — The status code for the error.
- `type` (string, optional) — HQ defined error code for the type of error.
- `title` (string, optional) — The title of the error. ex: Bad Request.
- `detail` (string, optional) — A detailed description of the error with possible suggestions for fixing them.
- `id` (string, optional) — A unique id for the request.

## Types

### baseProject/properties/projectValue

Contains details about the estimated cost of the project, including the amount (`value`) and the currency (`currency`).

- `value` (float, required) — The estimated cost of the project, based on the `currency` specified in the currency field. Default: `0`.
- `currency` (any, required) — The currency of the project value. Default: `USD`.

### projectTemplate

Information about a project in the current user's hub that is configured as a template from which to copy products and settings when creating a new project: - If you *include* this object in a [POST accounts/:accountId/projects](https://aps.autodesk.com/en/docs/acc/v1/reference/http/admin-accountsaccountidprojects-POST/) request, the cloned project's products and settings will match those of the template project. - If you *omit* this object from a [POST accounts/:accountId/projects](https://aps.autodesk.com/en/docs/acc/v1/reference/http/admin-accountsaccountidprojects-POST/) request, all of the current Forma hub's products are added to the cloned project and activated.

- `projectId` (string, required) — The ID of a project template in the current Forma hub from which to clone the new project and copy products and settings. Note that you cannot create a project template from another project template, but you can base it on a production project. Set this field to the project `id` of the production project. The new project template is not completely configured for use, but it will get you started. For more information about project templates, see [Project Templates](https://help.autodesk.com/view/BUILD/ENU/?guid=Account_Admin_Project_Templates) in the Build help.
- `isSampleProjectTemplate` (boolean, optional, default: false) — Indicates whether the template project should be associated with the user's hub, or the internal Sample Project Templates hub.
- `options` (ProjectTemplateOptions, optional) — Information about what to include when cloning a project template.

### fieldError

Error description for a field validation error.

- `type` (string, optional) — HQ defined error code for the type of error.
- `field` (string, optional) — Name of the field associated to the error.
- `title` (string, optional) — Title for the error.
- `detail` (string, optional) — A detailed description of the error so the user knows how to fix it.

### ProjectTemplateOptions

Information about what to include when cloning a project template.

- `field` (ProjectTemplateOptionsField, optional) — Project template options specific to classic field.

### ProjectTemplateOptionsField

Project template options specific to classic field.

- `includeCompanies` (boolean, optional) — Indicates whether to include company data when copying from the project template. - `true`: Include company data. - `false`: Exclude company data.
- `includeLocations` (boolean, optional) — Indicates whether to include location data when copying from the project template. - `true`: Include location data. - `false`: Exclude location data.

## Examples

**Request**

```json
{
  "name": "Sample Project",
  "type": "Hospital",
  "startDate": "2010-01-01",
  "endDate": "2015-12-31",
  "classification": "production",
  "projectValue": {
    "value": 1650000,
    "currency": "USD"
  },
  "jobNumber": "HP-0002",
  "addressLine1": "123 Main Street",
  "addressLine2": "Suite 2",
  "city": "San Francisco",
  "stateOrProvince": "California",
  "postalCode": "94001",
  "country": "United States",
  "latitude": "37.773972",
  "longitude": "-122.431297",
  "timezone": "America/Los_Angeles",
  "constructionType": "New Construction",
  "deliveryMethod": "Unit Price",
  "currentPhase": "Design",
  "businessUnitId": "802a4a61-3507-4d4e-8e3c-242a31cc0549",
  "products": [
    {
      "key": "docs"
    },
    {
      "key": "build"
    }
  ]
}
```

**Response**

```json
{
  "id": "3e354e66-ac8b-41dd-9bc1-93fc182c25dd",
  "name": "Sample Project",
  "startDate": "2010-01-01",
  "endDate": "2015-12-31",
  "type": "Hospital",
  "classification": "production",
  "projectValue": {
    "value": 1650000,
    "currency": "USD"
  },
  "status": "active",
  "jobNumber": "HP-0002",
  "addressLine1": "123 Main Street",
  "addressLine2": "Suite 2",
  "city": "San Francisco",
  "stateOrProvince": "California",
  "postalCode": "94001",
  "country": "US",
  "latitude": "37.773972",
  "longitude": "-122.431297",
  "timezone": "America/Los_Angeles",
  "constructionType": "New Construction",
  "deliveryMethod": "Design-Bid",
  "contractType": "Unit Price",
  "currentPhase": "Design",
  "businessUnitId": "802a4a61-3507-4d4e-8e3c-242a31cc0549",
  "lastSignIn": "2019-01-01T12:45:00.000Z",
  "imageUrl": "https://s3.us-east-1.amazonaws.com/project_image.png",
  "thumbnailImageUrl": "https://s3.us-east-1.amazonaws.com/project_thumbnail_image.png",
  "createdAt": "2018-01-01T12:45:00.000Z",
  "updatedAt": "2019-01-01T12:45:00.000Z",
  "memberGroupId": "3456542",
  "adminGroupId": "3456543",
  "accountId": "d73fc742-4538-401c-8d0f-853b49b750b2",
  "sheetCount": 512,
  "products": null,
  "platform": "acc",
  "companyCount": 10,
  "memberCount": 100,
  "templateId": "string",
  "jobId": "5d3bc131-c0dc-4222-9a2a-351363f437fa"
}
```

**SDK Code**

```python
import requests

url = "https://developer.api.autodesk.com/construction/admin/v1/accounts/d73fc742-4538-401c-8d0f-853b49b750b2/projects"

payload = {
    "name": "Sample Project",
    "type": "Hospital",
    "startDate": "2010-01-01",
    "endDate": "2015-12-31",
    "classification": "production",
    "projectValue": {
        "value": 1650000,
        "currency": "USD"
    },
    "jobNumber": "HP-0002",
    "addressLine1": "123 Main Street",
    "addressLine2": "Suite 2",
    "city": "San Francisco",
    "stateOrProvince": "California",
    "postalCode": "94001",
    "country": "United States",
    "latitude": "37.773972",
    "longitude": "-122.431297",
    "timezone": "America/Los_Angeles",
    "constructionType": "New Construction",
    "deliveryMethod": "Unit Price",
    "currentPhase": "Design",
    "businessUnitId": "802a4a61-3507-4d4e-8e3c-242a31cc0549",
    "products": [{ "key": "docs" }, { "key": "build" }]
}
headers = {
    "Accept-Language": "en",
    "Region": "US",
    "User-Id": "6cc15635-2fbd-4f73-afbe-abd833408a1d",
    "Authorization": "<token>.",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://developer.api.autodesk.com/construction/admin/v1/accounts/d73fc742-4538-401c-8d0f-853b49b750b2/projects';
const options = {
  method: 'POST',
  headers: {
    'Accept-Language': 'en',
    Region: 'US',
    'User-Id': '6cc15635-2fbd-4f73-afbe-abd833408a1d',
    Authorization: '<token>.',
    'Content-Type': 'application/json'
  },
  body: '{"name":"Sample Project","type":"Hospital","startDate":"2010-01-01","endDate":"2015-12-31","classification":"production","projectValue":{"value":1650000,"currency":"USD"},"jobNumber":"HP-0002","addressLine1":"123 Main Street","addressLine2":"Suite 2","city":"San Francisco","stateOrProvince":"California","postalCode":"94001","country":"United States","latitude":"37.773972","longitude":"-122.431297","timezone":"America/Los_Angeles","constructionType":"New Construction","deliveryMethod":"Unit Price","currentPhase":"Design","businessUnitId":"802a4a61-3507-4d4e-8e3c-242a31cc0549","products":[{"key":"docs"},{"key":"build"}]}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://developer.api.autodesk.com/construction/admin/v1/accounts/d73fc742-4538-401c-8d0f-853b49b750b2/projects"

	payload := strings.NewReader("{\n  \"name\": \"Sample Project\",\n  \"type\": \"Hospital\",\n  \"startDate\": \"2010-01-01\",\n  \"endDate\": \"2015-12-31\",\n  \"classification\": \"production\",\n  \"projectValue\": {\n    \"value\": 1650000,\n    \"currency\": \"USD\"\n  },\n  \"jobNumber\": \"HP-0002\",\n  \"addressLine1\": \"123 Main Street\",\n  \"addressLine2\": \"Suite 2\",\n  \"city\": \"San Francisco\",\n  \"stateOrProvince\": \"California\",\n  \"postalCode\": \"94001\",\n  \"country\": \"United States\",\n  \"latitude\": \"37.773972\",\n  \"longitude\": \"-122.431297\",\n  \"timezone\": \"America/Los_Angeles\",\n  \"constructionType\": \"New Construction\",\n  \"deliveryMethod\": \"Unit Price\",\n  \"currentPhase\": \"Design\",\n  \"businessUnitId\": \"802a4a61-3507-4d4e-8e3c-242a31cc0549\",\n  \"products\": [\n    {\n      \"key\": \"docs\"\n    },\n    {\n      \"key\": \"build\"\n    }\n  ]\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Accept-Language", "en")
	req.Header.Add("Region", "US")
	req.Header.Add("User-Id", "6cc15635-2fbd-4f73-afbe-abd833408a1d")
	req.Header.Add("Authorization", "<token>.")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://developer.api.autodesk.com/construction/admin/v1/accounts/d73fc742-4538-401c-8d0f-853b49b750b2/projects")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Accept-Language"] = 'en'
request["Region"] = 'US'
request["User-Id"] = '6cc15635-2fbd-4f73-afbe-abd833408a1d'
request["Authorization"] = '<token>.'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"name\": \"Sample Project\",\n  \"type\": \"Hospital\",\n  \"startDate\": \"2010-01-01\",\n  \"endDate\": \"2015-12-31\",\n  \"classification\": \"production\",\n  \"projectValue\": {\n    \"value\": 1650000,\n    \"currency\": \"USD\"\n  },\n  \"jobNumber\": \"HP-0002\",\n  \"addressLine1\": \"123 Main Street\",\n  \"addressLine2\": \"Suite 2\",\n  \"city\": \"San Francisco\",\n  \"stateOrProvince\": \"California\",\n  \"postalCode\": \"94001\",\n  \"country\": \"United States\",\n  \"latitude\": \"37.773972\",\n  \"longitude\": \"-122.431297\",\n  \"timezone\": \"America/Los_Angeles\",\n  \"constructionType\": \"New Construction\",\n  \"deliveryMethod\": \"Unit Price\",\n  \"currentPhase\": \"Design\",\n  \"businessUnitId\": \"802a4a61-3507-4d4e-8e3c-242a31cc0549\",\n  \"products\": [\n    {\n      \"key\": \"docs\"\n    },\n    {\n      \"key\": \"build\"\n    }\n  ]\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://developer.api.autodesk.com/construction/admin/v1/accounts/d73fc742-4538-401c-8d0f-853b49b750b2/projects")
  .header("Accept-Language", "en")
  .header("Region", "US")
  .header("User-Id", "6cc15635-2fbd-4f73-afbe-abd833408a1d")
  .header("Authorization", "<token>.")
  .header("Content-Type", "application/json")
  .body("{\n  \"name\": \"Sample Project\",\n  \"type\": \"Hospital\",\n  \"startDate\": \"2010-01-01\",\n  \"endDate\": \"2015-12-31\",\n  \"classification\": \"production\",\n  \"projectValue\": {\n    \"value\": 1650000,\n    \"currency\": \"USD\"\n  },\n  \"jobNumber\": \"HP-0002\",\n  \"addressLine1\": \"123 Main Street\",\n  \"addressLine2\": \"Suite 2\",\n  \"city\": \"San Francisco\",\n  \"stateOrProvince\": \"California\",\n  \"postalCode\": \"94001\",\n  \"country\": \"United States\",\n  \"latitude\": \"37.773972\",\n  \"longitude\": \"-122.431297\",\n  \"timezone\": \"America/Los_Angeles\",\n  \"constructionType\": \"New Construction\",\n  \"deliveryMethod\": \"Unit Price\",\n  \"currentPhase\": \"Design\",\n  \"businessUnitId\": \"802a4a61-3507-4d4e-8e3c-242a31cc0549\",\n  \"products\": [\n    {\n      \"key\": \"docs\"\n    },\n    {\n      \"key\": \"build\"\n    }\n  ]\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://developer.api.autodesk.com/construction/admin/v1/accounts/d73fc742-4538-401c-8d0f-853b49b750b2/projects', [
  'body' => '{
  "name": "Sample Project",
  "type": "Hospital",
  "startDate": "2010-01-01",
  "endDate": "2015-12-31",
  "classification": "production",
  "projectValue": {
    "value": 1650000,
    "currency": "USD"
  },
  "jobNumber": "HP-0002",
  "addressLine1": "123 Main Street",
  "addressLine2": "Suite 2",
  "city": "San Francisco",
  "stateOrProvince": "California",
  "postalCode": "94001",
  "country": "United States",
  "latitude": "37.773972",
  "longitude": "-122.431297",
  "timezone": "America/Los_Angeles",
  "constructionType": "New Construction",
  "deliveryMethod": "Unit Price",
  "currentPhase": "Design",
  "businessUnitId": "802a4a61-3507-4d4e-8e3c-242a31cc0549",
  "products": [
    {
      "key": "docs"
    },
    {
      "key": "build"
    }
  ]
}',
  'headers' => [
    'Accept-Language' => 'en',
    'Authorization' => '<token>.',
    'Content-Type' => 'application/json',
    'Region' => 'US',
    'User-Id' => '6cc15635-2fbd-4f73-afbe-abd833408a1d',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://developer.api.autodesk.com/construction/admin/v1/accounts/d73fc742-4538-401c-8d0f-853b49b750b2/projects");
var request = new RestRequest(Method.POST);
request.AddHeader("Accept-Language", "en");
request.AddHeader("Region", "US");
request.AddHeader("User-Id", "6cc15635-2fbd-4f73-afbe-abd833408a1d");
request.AddHeader("Authorization", "<token>.");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"name\": \"Sample Project\",\n  \"type\": \"Hospital\",\n  \"startDate\": \"2010-01-01\",\n  \"endDate\": \"2015-12-31\",\n  \"classification\": \"production\",\n  \"projectValue\": {\n    \"value\": 1650000,\n    \"currency\": \"USD\"\n  },\n  \"jobNumber\": \"HP-0002\",\n  \"addressLine1\": \"123 Main Street\",\n  \"addressLine2\": \"Suite 2\",\n  \"city\": \"San Francisco\",\n  \"stateOrProvince\": \"California\",\n  \"postalCode\": \"94001\",\n  \"country\": \"United States\",\n  \"latitude\": \"37.773972\",\n  \"longitude\": \"-122.431297\",\n  \"timezone\": \"America/Los_Angeles\",\n  \"constructionType\": \"New Construction\",\n  \"deliveryMethod\": \"Unit Price\",\n  \"currentPhase\": \"Design\",\n  \"businessUnitId\": \"802a4a61-3507-4d4e-8e3c-242a31cc0549\",\n  \"products\": [\n    {\n      \"key\": \"docs\"\n    },\n    {\n      \"key\": \"build\"\n    }\n  ]\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Accept-Language": "en",
  "Region": "US",
  "User-Id": "6cc15635-2fbd-4f73-afbe-abd833408a1d",
  "Authorization": "<token>.",
  "Content-Type": "application/json"
]
let parameters = [
  "name": "Sample Project",
  "type": "Hospital",
  "startDate": "2010-01-01",
  "endDate": "2015-12-31",
  "classification": "production",
  "projectValue": [
    "value": 1650000,
    "currency": "USD"
  ],
  "jobNumber": "HP-0002",
  "addressLine1": "123 Main Street",
  "addressLine2": "Suite 2",
  "city": "San Francisco",
  "stateOrProvince": "California",
  "postalCode": "94001",
  "country": "United States",
  "latitude": "37.773972",
  "longitude": "-122.431297",
  "timezone": "America/Los_Angeles",
  "constructionType": "New Construction",
  "deliveryMethod": "Unit Price",
  "currentPhase": "Design",
  "businessUnitId": "802a4a61-3507-4d4e-8e3c-242a31cc0549",
  "products": [["key": "docs"], ["key": "build"]]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://developer.api.autodesk.com/construction/admin/v1/accounts/d73fc742-4538-401c-8d0f-853b49b750b2/projects")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```