---
title: "UpdateProject"
method: PATCH
path: "/v1/namespaces/{object.tenant_meta.namespace}/projects"
tags: ["ProjectService"]
---

# UpdateProject

`PATCH /v1/namespaces/{object.tenant_meta.namespace}/projects`

Updates the specified project with the information in the request body.

## Path parameters

- `object.tenant_meta.namespace` string, required

## Request body

- ProjectServiceUpdateProjectBody — Request used to update a project.
  - `object` object — Logical root object that serves as the basis for organizing and managing all information related to a repository. A project corresponds to a repository.
    - `meta` V1Meta — Common fields for all Endor Labs resources.
      - `annotations` object — Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
      - `create_time` string, date-time — Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
      - `created_by` string — Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
      - `description` string — Resource description. Must be less than 1024 bytes.
      - `index_data` V1IndexData — IndexData is used to index the resource for search. It's an internal object.
        - `data` string[]
        - `search_score` number, float — search_score is the score of the resource for search. Internal use only.
        - `tenant` string
        - `will_be_deleted_at` string, date-time — Time that the resource will be deleted.
      - `kind` string — Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
      - `name` string, required — Resource name. Must be 63 characters or less.
      - `parent_kind` string — Parent object resource kind, for example, Project.
      - `parent_uuid` string — Parent object UUID.
      - `references` object — Map of objects referenced in a query API.
      - `tags` string[] — List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
      - `update_time` string, date-time — Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
      - `updated_by` string — Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
      - `upsert_time` string, date-time — Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
      - `version` string — Message version.
    - `processing_status` V1ProcessingStatus
      - `analytic_time` string, date-time — Last time a project was analyzed. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
      - `deactivated` boolean — Indicates whether the project is deactivated. Deactivated projects are not scanned and are not visible to users in the UI by default.
      - `disable_automated_scan` boolean — This is a private package and it must not be scanned by the background scheduler. It will be scanned by an endorctl client instead. Default: false.
      - `metadata` V1ProcessingStatusMetadata
        - `full_history_scan_time` string, date-time
      - `queue_time` string, date-time — Last time a project was queued. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
      - `scan_state` 'SCAN_STATE_UNSPECIFIED' | 'SCAN_STATE_NOT_PROCESSED' | 'SCAN_STATE_IDLE' | 'SCAN_STATE_INGESTING' | 'SCAN_STATE_ANALYTIC' | 'SCAN_STATE_UNREACHABLE' | 'SCAN_STATE_REQUEST_FULL_RESCAN' | 'SCAN_STATE_REQUEST_INCREMENTAL_RESCAN' | 'SCAN_STATE_QUEUED' | 'SCAN_STATE_QUARANTINED' — Scan state for a project or package version. - SCAN_STATE_NOT_PROCESSED: Object has not been processed by the system yet. Set when the project or package is created for the first time. A new project or package version is automatically placed in this state. - SCAN_STATE_IDLE: Object has been scanned at least once. - SCAN_STATE_INGESTING: Object is being scanned. - SCAN_STATE_ANALYTIC: Object is being analyzed. - SCAN_STATE_UNREACHABLE: Object cannot be ingested because it is not reachable from the scheduler. - SCAN_STATE_REQUEST_FULL_RESCAN: Object is marked for a complete rescan. This only applies to OSS projects. - SCAN_STATE_REQUEST_INCREMENTAL_RESCAN: Object is marked for an incremental rescan, where only new packages discovered in the scan are added. Indicates that this project should be rescanned with a higher priority. Often because it is used by a customer and we need any new packages to be discovered and scanned with higher priority. If the project is put in this state, we will scan any new packages at high priority but we will not re-scan older packages. - SCAN_STATE_QUEUED: Object is queued to be scanned. - SCAN_STATE_QUARANTINED: Scan scheduling was unsuccessful due to a system errors. Object is quarantined from additional scheduling. Potentially object is an orphan or similar situations.
      - `scan_time` string, date-time — Last time a project was ingested. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt
    - `spec` V1ProjectSpec
      - `git` V1GitSpec — Git repository project configuration. Fields of this object might differ from the Git host.
        - `external_installation_id` string, int64 — Endor Labs GitHub app installation ID of this project. Optional and only available if the project is created through an installation.
        - `full_name` string — Represents the Git namespace and its associated hierarchy. The format is "namespace/name", comprising the organization name and repository name. For example, yarpc/yarpc-go GitHub: curl https://api.github.com/repos/yarpc/yarpc-go | jq .full_name
        - `git_clone_url` string — The Git clone URL. For example, git://github.com/yarpc/yarpc-go.git. The URL is stored as lower case letters to normalize searches.
        - `http_clone_url` string, required — The HTTP clone URL. The following examples show valid URLs. https://github.com/yarpc/yarpc-go.git http://github.com/yarpc/yarpc-go.git https://my.github.com/a/b.git https://www.gitlab.com/a/b/c.git https://github.com/eclipse-vertx/vert.x.git https://github.com/jboss/jboss-ejb-api_spec.git The URL is stored as lower case letters to normalize searches.
        - `invalid_installation` boolean — Indicates that Endor Labs installation no longer exists for this project and was potentially deleted. Endor Labs can no longer refresh or rescan this project.
        - `organization` string — The organization where the repository is located. For example, yarpc GitHub: curl https://api.github.com/repos/yarpc/yarpc-go | jq .organization.login
        - `path` string — The source control repository in the project without the organization. For example, yarpc-go GitHub: curl https://api.github.com/repos/yarpc/yarpc-go | jq .name
        - `web_url` string — The web URL to view the repository. For example, https://github.com/yarpc/yarpc-go GitHub: curl https://api.github.com/repos/yarpc/yarpc-go | jq .html_url The URL is stored as lower case letters to normalize searches.
      - `ingestion_token` string — Third-party API authentication token to read project related information.
      - `internal_reference_key` string — Unique key for the project generated by Endor Labs to simplify lookups.
      - `is_archived` boolean — Indicates whether the project is archived. Archived projects are typically read-only and users can choose to scan or not scan the project in the app integrations settings.
      - `model` V1ModelSpec
        - `external_installation_id` string — Endor Labs Hugging Face installation ID of this project. Optional and only available if the project is created through an installation.
        - `full_name` string, required — The author and model name. For example, author/model_name.
        - `http_clone_url` string — The HTTP clone URL of the project. For example, https://huggingface.co/openai-community/gpt2.
        - `provider` 'AI_MODEL_PROVIDER_UNSPECIFIED' | 'AI_MODEL_PROVIDER_HUGGING_FACE' | 'AI_MODEL_PROVIDER_OPENAI' | 'AI_MODEL_PROVIDER_ANTHROPIC' | 'AI_MODEL_PROVIDER_GOOGLE' | 'AI_MODEL_PROVIDER_AWS' | 'AI_MODEL_PROVIDER_PERPLEXITY' | 'AI_MODEL_PROVIDER_DEEPSEEK' | 'AI_MODEL_PROVIDER_AZUREOPENAI' | 'AI_MODEL_PROVIDER_CUSTOM' — Provider the model comes from. - AI_MODEL_PROVIDER_HUGGING_FACE: The model comes from Hugging Face. - AI_MODEL_PROVIDER_OPENAI: The model comes from OpenAI. - AI_MODEL_PROVIDER_ANTHROPIC: The model comes from Anthropic. - AI_MODEL_PROVIDER_GOOGLE: The model comes from Google. - AI_MODEL_PROVIDER_AWS: The model comes from AWS. - AI_MODEL_PROVIDER_PERPLEXITY: The model comes from Perplexity. - AI_MODEL_PROVIDER_DEEPSEEK: The model comes from DeepSeek. - AI_MODEL_PROVIDER_AZUREOPENAI: The model comes from Azure OpenAI. - AI_MODEL_PROVIDER_CUSTOM: The model comes from a custom AI provider defined by the user.
      - `platform_source` 'PLATFORM_SOURCE_UNSPECIFIED' | 'PLATFORM_SOURCE_GITHUB' | 'PLATFORM_SOURCE_GITLAB' | 'PLATFORM_SOURCE_GITSERVER' | 'PLATFORM_SOURCE_BITBUCKET' | 'PLATFORM_SOURCE_BINARY' | 'PLATFORM_SOURCE_HUGGING_FACE' | 'PLATFORM_SOURCE_AZURE' | 'PLATFORM_SOURCE_ARCHIVE' | 'PLATFORM_SOURCE_EXTERNAL_AI_SERVICE' | 'PLATFORM_SOURCE_GITHUB_ENTERPRISE', required — Type of source control platform a resource was discovered on.
      - `sbom` V1SBOMSpec
        - `kind` 'SBOM_KIND_UNSPECIFIED' | 'SBOM_KIND_CYCLONEDX' | 'SBOM_KIND_SPDX', required — SBOM type.
        - `main_component_purl` string, required — Package URL (PURL) is a standard to identify packages, libraries, or modules in an SBOM. Provides information about the package like name, version, and repository location.
      - `scan_profile_uuid` string
      - `toolchain_profile_uuid` string — The toolchain required to build and scan the project.
      - `unsupported` V1UnsupportedSpec — A project with a source code type that is not supported or not known.
        - `name` string, required — Name of the unsupported project, which can be an unsupported clone URL or a package name.
    - `tenant_meta` object — The tenant to which the project belongs.
    - `uuid` string — The unique identifier of the project.
  - `request` V1UpdateRequest — Message used for all update requests.
    - `force` boolean — Force will force the update of the resource if any checks fail.
    - `update_mask` string — Fields to update. Defaults to all fields.

## Response `200`

A successful response.

- V1Project — Logical root object that serves as the basis for organizing and managing all information related to a repository. A project corresponds to a repository.
  - `meta` V1Meta, required — Common fields for all Endor Labs resources.
    - `annotations` object — Annotations can be used to attach metadata to a resource message. Annotation values can be small or large, structured or unstructured, and may include characters not permitted by labels. The keys may contain alphanumerics, underscores (_), dots (.) and dashes (-). The values of an annotation must be 16384 bytes or smaller.
    - `create_time` string, date-time — Time the resource was created. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `created_by` string — Name and authentication source of the user who created the object, for example, ewok@endor.ai@google@api-key.
    - `description` string — Resource description. Must be less than 1024 bytes.
    - `index_data` V1IndexData — IndexData is used to index the resource for search. It's an internal object.
      - `data` string[]
      - `search_score` number, float — search_score is the score of the resource for search. Internal use only.
      - `tenant` string
      - `will_be_deleted_at` string, date-time — Time that the resource will be deleted.
    - `kind` string — Resource kind, for example, HelloResponse. Auto-generated using the protobuf message proto.MessageName().Name().
    - `name` string, required — Resource name. Must be 63 characters or less.
    - `parent_kind` string — Parent object resource kind, for example, Project.
    - `parent_uuid` string — Parent object UUID.
    - `references` object — Map of objects referenced in a query API.
    - `tags` string[] — List of tags attached to the resource. Tags can be used to select objects and to find collections of objects that satisfy certain conditions. A tag must be 255 characters or less.
    - `update_time` string, date-time — Time the resource was last updated. Note: Updated on all create/patch/delete operations. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `updated_by` string — Name and authentication source of the last user who updated the object, for example, vulnerabilityingestor@endor.ai@x509.
    - `upsert_time` string, date-time — Time the resource was last upserted. Note: create_time is only set the first time the resource is created. upsert_time is set every time the resource is upseted. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `version` string — Message version.
  - `processing_status` V1ProcessingStatus
    - `analytic_time` string, date-time — Last time a project was analyzed. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `deactivated` boolean — Indicates whether the project is deactivated. Deactivated projects are not scanned and are not visible to users in the UI by default.
    - `disable_automated_scan` boolean — This is a private package and it must not be scanned by the background scheduler. It will be scanned by an endorctl client instead. Default: false.
    - `metadata` V1ProcessingStatusMetadata
      - `full_history_scan_time` string, date-time
    - `queue_time` string, date-time — Last time a project was queued. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt.
    - `scan_state` 'SCAN_STATE_UNSPECIFIED' | 'SCAN_STATE_NOT_PROCESSED' | 'SCAN_STATE_IDLE' | 'SCAN_STATE_INGESTING' | 'SCAN_STATE_ANALYTIC' | 'SCAN_STATE_UNREACHABLE' | 'SCAN_STATE_REQUEST_FULL_RESCAN' | 'SCAN_STATE_REQUEST_INCREMENTAL_RESCAN' | 'SCAN_STATE_QUEUED' | 'SCAN_STATE_QUARANTINED' — Scan state for a project or package version. - SCAN_STATE_NOT_PROCESSED: Object has not been processed by the system yet. Set when the project or package is created for the first time. A new project or package version is automatically placed in this state. - SCAN_STATE_IDLE: Object has been scanned at least once. - SCAN_STATE_INGESTING: Object is being scanned. - SCAN_STATE_ANALYTIC: Object is being analyzed. - SCAN_STATE_UNREACHABLE: Object cannot be ingested because it is not reachable from the scheduler. - SCAN_STATE_REQUEST_FULL_RESCAN: Object is marked for a complete rescan. This only applies to OSS projects. - SCAN_STATE_REQUEST_INCREMENTAL_RESCAN: Object is marked for an incremental rescan, where only new packages discovered in the scan are added. Indicates that this project should be rescanned with a higher priority. Often because it is used by a customer and we need any new packages to be discovered and scanned with higher priority. If the project is put in this state, we will scan any new packages at high priority but we will not re-scan older packages. - SCAN_STATE_QUEUED: Object is queued to be scanned. - SCAN_STATE_QUARANTINED: Scan scheduling was unsuccessful due to a system errors. Object is quarantined from additional scheduling. Potentially object is an orphan or similar situations.
    - `scan_time` string, date-time — Last time a project was ingested. Format: 2017-01-15T01:30:15.01Z RFC 3339: https://www.ietf.org/rfc/rfc3339.txt
  - `spec` V1ProjectSpec, required
    - `git` V1GitSpec — Git repository project configuration. Fields of this object might differ from the Git host.
      - `external_installation_id` string, int64 — Endor Labs GitHub app installation ID of this project. Optional and only available if the project is created through an installation.
      - `full_name` string — Represents the Git namespace and its associated hierarchy. The format is "namespace/name", comprising the organization name and repository name. For example, yarpc/yarpc-go GitHub: curl https://api.github.com/repos/yarpc/yarpc-go | jq .full_name
      - `git_clone_url` string — The Git clone URL. For example, git://github.com/yarpc/yarpc-go.git. The URL is stored as lower case letters to normalize searches.
      - `http_clone_url` string, required — The HTTP clone URL. The following examples show valid URLs. https://github.com/yarpc/yarpc-go.git http://github.com/yarpc/yarpc-go.git https://my.github.com/a/b.git https://www.gitlab.com/a/b/c.git https://github.com/eclipse-vertx/vert.x.git https://github.com/jboss/jboss-ejb-api_spec.git The URL is stored as lower case letters to normalize searches.
      - `invalid_installation` boolean — Indicates that Endor Labs installation no longer exists for this project and was potentially deleted. Endor Labs can no longer refresh or rescan this project.
      - `organization` string — The organization where the repository is located. For example, yarpc GitHub: curl https://api.github.com/repos/yarpc/yarpc-go | jq .organization.login
      - `path` string — The source control repository in the project without the organization. For example, yarpc-go GitHub: curl https://api.github.com/repos/yarpc/yarpc-go | jq .name
      - `web_url` string — The web URL to view the repository. For example, https://github.com/yarpc/yarpc-go GitHub: curl https://api.github.com/repos/yarpc/yarpc-go | jq .html_url The URL is stored as lower case letters to normalize searches.
    - `ingestion_token` string — Third-party API authentication token to read project related information.
    - `internal_reference_key` string — Unique key for the project generated by Endor Labs to simplify lookups.
    - `is_archived` boolean — Indicates whether the project is archived. Archived projects are typically read-only and users can choose to scan or not scan the project in the app integrations settings.
    - `model` V1ModelSpec
      - `external_installation_id` string — Endor Labs Hugging Face installation ID of this project. Optional and only available if the project is created through an installation.
      - `full_name` string, required — The author and model name. For example, author/model_name.
      - `http_clone_url` string — The HTTP clone URL of the project. For example, https://huggingface.co/openai-community/gpt2.
      - `provider` 'AI_MODEL_PROVIDER_UNSPECIFIED' | 'AI_MODEL_PROVIDER_HUGGING_FACE' | 'AI_MODEL_PROVIDER_OPENAI' | 'AI_MODEL_PROVIDER_ANTHROPIC' | 'AI_MODEL_PROVIDER_GOOGLE' | 'AI_MODEL_PROVIDER_AWS' | 'AI_MODEL_PROVIDER_PERPLEXITY' | 'AI_MODEL_PROVIDER_DEEPSEEK' | 'AI_MODEL_PROVIDER_AZUREOPENAI' | 'AI_MODEL_PROVIDER_CUSTOM' — Provider the model comes from. - AI_MODEL_PROVIDER_HUGGING_FACE: The model comes from Hugging Face. - AI_MODEL_PROVIDER_OPENAI: The model comes from OpenAI. - AI_MODEL_PROVIDER_ANTHROPIC: The model comes from Anthropic. - AI_MODEL_PROVIDER_GOOGLE: The model comes from Google. - AI_MODEL_PROVIDER_AWS: The model comes from AWS. - AI_MODEL_PROVIDER_PERPLEXITY: The model comes from Perplexity. - AI_MODEL_PROVIDER_DEEPSEEK: The model comes from DeepSeek. - AI_MODEL_PROVIDER_AZUREOPENAI: The model comes from Azure OpenAI. - AI_MODEL_PROVIDER_CUSTOM: The model comes from a custom AI provider defined by the user.
    - `platform_source` 'PLATFORM_SOURCE_UNSPECIFIED' | 'PLATFORM_SOURCE_GITHUB' | 'PLATFORM_SOURCE_GITLAB' | 'PLATFORM_SOURCE_GITSERVER' | 'PLATFORM_SOURCE_BITBUCKET' | 'PLATFORM_SOURCE_BINARY' | 'PLATFORM_SOURCE_HUGGING_FACE' | 'PLATFORM_SOURCE_AZURE' | 'PLATFORM_SOURCE_ARCHIVE' | 'PLATFORM_SOURCE_EXTERNAL_AI_SERVICE' | 'PLATFORM_SOURCE_GITHUB_ENTERPRISE', required — Type of source control platform a resource was discovered on.
    - `sbom` V1SBOMSpec
      - `kind` 'SBOM_KIND_UNSPECIFIED' | 'SBOM_KIND_CYCLONEDX' | 'SBOM_KIND_SPDX', required — SBOM type.
      - `main_component_purl` string, required — Package URL (PURL) is a standard to identify packages, libraries, or modules in an SBOM. Provides information about the package like name, version, and repository location.
    - `scan_profile_uuid` string
    - `toolchain_profile_uuid` string — The toolchain required to build and scan the project.
    - `unsupported` V1UnsupportedSpec — A project with a source code type that is not supported or not known.
      - `name` string, required — Name of the unsupported project, which can be an unsupported clone URL or a package name.
  - `tenant_meta` V1TenantMeta — Tenant related data for the tenant containing the resource.
    - `namespace` string, required — Namespaces are a way to organize organizational units into virtual groupings of resources. Namespaces must be a fully qualified name, for example, the child namespace of namespace "endor.prod" called "app" is called "endor.prod.app".
  - `uuid` string — The unique identifier of the project.

## Other responses

- `default` — An unexpected error response.

---

[API](https://skmtc.net/endorlabs/apis/endor-labs-rest-api-reference.md) · [All operations](https://skmtc.net/endorlabs/apis/endor-labs-rest-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/endorlabs/endor-labs-rest-api-reference/versions/2fe1f84213b3/schema)
