# /api/v3/projects/{id} --- delete: parameters: - description: Project id example: '1' in: path name: id required: true schema: type: integer responses: '204': description: |- Returned if the project was successfully deleted. There is currently no end point to query for the actual deletion status. Such an end point _might_ be added in the future. headers: {} '403': content: application/hal+json: examples: response: value: _type: Error errorIdentifier: urn:openproject-org:api:v3:errors:MissingPermission message: You are not authorized to access this resource. description: |- Returned if the client does not have sufficient permissions. **Required permission:** admin headers: {} '404': content: application/hal+json: examples: response: value: _type: Error errorIdentifier: urn:openproject-org:api:v3:errors:NotFound message: The requested resource could not be found. description: |- Returned if the project does not exist or the client does not have sufficient permissions to see it. **Required permission:** view project *Note: A client without sufficient permissions shall not be able to test for the existence of a version. That's why a 404 is returned here, even if a 403 might be more appropriate.* headers: {} '422': content: application/hal+json: examples: response: value: _embedded: details: attribute: base _type: Error errorIdentifier: urn:openproject-org:api:v3:errors:PropertyConstraintViolation message: Work packages in non descendant projects reference versions of the project or its descendants. description: |- Returned if the project cannot be deleted. This can happen when there are still references to the project in other projects that need to be severed at first. headers: {} tags: - Projects description: |- Deletes the project permanently. As this is a lengthy process, the actual deletion is carried out asynchronously. So the project might exist well after the request has returned successfully. To prevent unwanted changes to the project scheduled for deletion, it is archived at once. operationId: Delete_Project summary: Delete Project get: parameters: - description: Project id example: '1' in: path name: id required: true schema: type: integer responses: '200': content: application/hal+json: examples: response: value: _links: categories: href: "/api/v3/projects/1/categories" createWorkPackage: href: "/api/v3/projects/1/work_packages/form" method: post createWorkPackageImmediate: href: "/api/v3/projects/1/work_packages" method: post customField456: href: "/api/v3/users/315" method: A user memberships: href: /api/v3/memberships?filters=[{"project":{"operator":"=","values":["1"]}}] projects: href: "/api/v3/projects/123" self: href: "/api/v3/projects/1" title: Lorem status: href: "/api/v3/project_statuses/on_track" title: On track types: href: "/api/v3/projects/1/types" versions: href: "/api/v3/projects/1/versions" workPackages: href: "/api/v3/projects/1/work_packages" _type: Project active: true createdAt: '2014-05-21T08:51:20Z' customField123: 123 description: format: markdown html: "
Lorem ipsum dolor sit amet
" raw: Lorem **ipsum** dolor sit amet id: 1 identifier: project_identifier name: Project example public: false statusExplanation: format: markdown html: "Everything fine
" raw: Everything **fine** updatedAt: '2014-05-21T08:51:20Z' schema: "$ref": "../components/schemas/view_project_model.yml" description: OK headers: {} '404': content: application/hal+json: examples: response: value: _type: Error errorIdentifier: urn:openproject-org:api:v3:errors:NotFound message: The requested resource could not be found. description: |- Returned if the project does not exist or the client does not have sufficient permissions to see it. **Required permission:** view project *Note: A client without sufficient permissions shall not be able to test for the existence of a project. That's why a 404 is returned here, even if a 403 might be more appropriate.* headers: {} tags: - Projects description: '' operationId: View_project summary: View project patch: parameters: - description: Project id example: '1' in: path name: id required: true schema: type: integer responses: '200': content: application/hal+json: schema: "$ref": "../components/schemas/view_project_model.yml" description: OK headers: {} '400': content: application/hal+json: examples: response: value: _type: Error errorIdentifier: urn:openproject-org:api:v3:errors:InvalidRequestBody message: The request body was not a single JSON object. description: Occurs when the client did not send a valid JSON object in the request body. headers: {} '403': content: application/hal+json: examples: response: value: _type: Error errorIdentifier: urn:openproject-org:api:v3:errors:MissingPermission message: You are not authorized to access this resource. description: |- Returned if the client does not have sufficient permissions. **Required permission:** edit project for the project to be altered headers: {} '404': content: application/hal+json: examples: response: value: _type: Error errorIdentifier: urn:openproject-org:api:v3:errors:NotFound message: The requested resource could not be found. description: |- Returned if the project does not exist or the client does not have sufficient permissions to see it. **Required permission:** view project *Note: A client without sufficient permissions shall not be able to test for the existence of a version. That's why a 404 is returned here, even if a 403 might be more appropriate.* headers: {} '422': content: application/hal+json: examples: response: value: _embedded: details: attribute: name _type: Error errorIdentifier: urn:openproject-org:api:v3:errors:PropertyConstraintViolation message: Name can't be blank. description: |- Returned if: * a constraint for a property was violated (`PropertyConstraintViolation`) headers: {} tags: - Projects description: Updates the given project by applying the attributes provided in the body. operationId: Update_Project summary: Update Project