> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revcenter.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete a project

> Delete a project for good, sending its exact name as confirm_name. Its shortlist, share link and do-not-contact list go with it; its searches and the people they found stay. Cannot be undone. confirm_name must be the project's name exactly as get_project returns it, or nothing is deleted (400 confirmation_required). The share link stops showing the list, so a client holding it sees nothing: to keep it, archive instead (update_project with archived true). A project with delivered work behind it is kept (409 project_in_use). Preview it with preview_action first to show the person what goes. Does not use credits. It can't be undone, so the MCP server asks the person first, naming what goes.

Needs scope `projects:write`.



## OpenAPI

````yaml /openapi.json delete /projects/{projectId}
openapi: 3.1.0
info:
  title: Revcenter API
  version: v1
  description: >-
    Projects, searches, scored candidates and shortlists. Generated from the
    agent API's registry.
servers:
  - url: https://api.revcenter.ai/v1
security:
  - bearer: []
tags:
  - name: Login
  - name: Account
  - name: Actions
  - name: Reference
  - name: Projects
  - name: Searches
  - name: Scoring
  - name: Shortlists
  - name: Candidates
  - name: Webhooks
  - name: Health
paths:
  /projects/{projectId}:
    delete:
      tags:
        - Projects
      summary: Delete a project
      description: >-
        Delete a project for good, sending its exact name as confirm_name. Its
        shortlist, share link and do-not-contact list go with it; its searches
        and the people they found stay. Cannot be undone. confirm_name must be
        the project's name exactly as get_project returns it, or nothing is
        deleted (400 confirmation_required). The share link stops showing the
        list, so a client holding it sees nothing: to keep it, archive instead
        (update_project with archived true). A project with delivered work
        behind it is kept (409 project_in_use). Preview it with preview_action
        first to show the person what goes. Does not use credits. It can't be
        undone, so the MCP server asks the person first, naming what goes.


        Needs scope `projects:write`.
      operationId: delete_project
      parameters:
        - name: projectId
          in: path
          required: true
          description: A project id
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - confirm_name
              properties:
                confirm_name:
                  type: string
                  description: The project's exact name.
            example:
              confirm_name: Plant Controller, Camden NJ
      responses:
        '200':
          description: OK
          headers:
            X-RateLimit-Limit:
              description: >-
                Requests allowed this minute (the tighter of the key's and the
                workspace's).
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left this minute.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: When the minute resets, in Unix seconds.
              schema:
                type: integer
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      deleted:
                        type: boolean
                      project_id:
                        type: string
                      name:
                        type: string
                      searches_kept:
                        type: integer
                  meta:
                    $ref: '#/components/schemas/Meta'
              example:
                data:
                  deleted: true
                  project_id: 6f1c2a0e-3b7d-4c1e-9a52-0d4e8b7c1a11
                  name: Plant Controller, Camden NJ
                  searches_kept: 1
                meta:
                  request_id: req_01JABCDEF
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/Error'
        '402':
          $ref: '#/components/responses/Error'
        '403':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
        '409':
          $ref: '#/components/responses/Error'
        '429':
          $ref: '#/components/responses/Error'
        '500':
          $ref: '#/components/responses/Error'
        '503':
          $ref: '#/components/responses/Error'
components:
  schemas:
    Meta:
      type: object
      properties:
        request_id:
          type: string
        total:
          type: integer
          description: On lists that count everything that matched.
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - request_id
          properties:
            code:
              type: string
              description: 'Stable: every code is on the Errors page.'
            message:
              type: string
            details:
              type:
                - object
                - 'null'
              description: >-
                Structured specifics, when there are any (for example
                retry_after_seconds).
            request_id:
              type: string
        meta:
          $ref: '#/components/schemas/Meta'
      example:
        error:
          code: search_not_found
          message: No search with that id in this workspace.
          details: null
          request_id: req_01JABCDEF
        meta:
          request_id: req_01JABCDEF
  responses:
    Error:
      description: 'An error: one envelope everywhere. A 429 carries Retry-After.'
      headers:
        X-RateLimit-Limit:
          description: >-
            Requests allowed this minute (the tighter of the key's and the
            workspace's).
          schema:
            type: integer
        X-RateLimit-Remaining:
          description: Requests left this minute.
          schema:
            type: integer
        X-RateLimit-Reset:
          description: When the minute resets, in Unix seconds.
          schema:
            type: integer
        Retry-After:
          description: Seconds to wait (on 429 and 503).
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: An API key from Settings → Usage → API (rvc_live_…).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.