openapi: 3.2.0 info: title: Harness Registry V3 - Registries API version: '1.0' description: The Harness Software Delivery Platform uses OpenAPI Specification v3.0. contact: name: API Support email: contact@harness.io url: https://harness.io/ x-logo: url: https://mma.prnewswire.com/media/779232/Harnes_logo_horizontal.jpg?p=facebook altText: Harness termsOfService: https://harness.io/terms-of-use/ servers: - url: https://app.harness.io description: Harness host URL - url: https://{vanity} description: Vanity URL variables: vanity: default: app.harness.io security: - x-api-key: [] tags: - description: V3 registries endpoints name: Registry V3 - Registries paths: /har/api/v3/registries: get: description: Lists registries. operationId: ListRegistriesV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/OrgIdentifierV3' - $ref: '#/components/parameters/ProjectIdentifierV3' - $ref: '#/components/parameters/PackageTypeListParamV3' - $ref: '#/components/parameters/RegistryTypeParamV3' - $ref: '#/components/parameters/MetadataFilterListParamV3' - $ref: '#/components/parameters/RegistryScopeV3' - $ref: '#/components/parameters/DeleteFilterParamV3' - $ref: '#/components/parameters/PageNumberV3' - $ref: '#/components/parameters/PageSizeV3' - $ref: '#/components/parameters/SortV3' - $ref: '#/components/parameters/SearchTermV3' - $ref: '#/components/parameters/IncludeMetaParamV3' responses: '200': $ref: '#/components/responses/ListRegistryResponseV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: List registries tags: - Registry V3 - Registries x-internal: false /har/api/v3/registries/{id}: delete: description: Delete a registry (soft or hard delete based on deleteType parameter) operationId: DeleteRegistryV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/IdPathParamV3' - $ref: '#/components/parameters/ForceParamV3' responses: '200': description: Deleted successfully default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Delete a Registry tags: - Registry V3 - Registries x-internal: true /har/api/v3/registries/{id}/metadata: get: description: Retrieves all metadata for a registry. operationId: GetRegistryMetadataV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/IdPathParamV3' responses: '200': $ref: '#/components/responses/MetadataResponseV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Get Registry Metadata tags: - Registry V3 - Registries x-internal: false post: description: Creates or overwrites metadata for a registry. operationId: UpsertRegistryMetadataV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/IdPathParamV3' requestBody: $ref: '#/components/requestBodies/MetadataRequestV3' responses: '200': $ref: '#/components/responses/MetadataResponseV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Upsert Registry Metadata tags: - Registry V3 - Registries x-internal: false put: description: Replaces all metadata for a registry. operationId: SaveRegistryMetadataV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/IdPathParamV3' requestBody: $ref: '#/components/requestBodies/MetadataRequestV3' responses: '200': $ref: '#/components/responses/MetadataResponseV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Replace Registry Metadata tags: - Registry V3 - Registries x-internal: false /har/api/v3/registries/{id}/migrate: post: description: Migrate a generic registry to raw registry type. This will change the registry type from GENERIC to RAW and delete all images associated with the registry. operationId: MigrateRegistryV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/IdPathParamV3' responses: '200': description: Migrated successfully default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Migrate Generic Registry to Raw Registry tags: - Registry V3 - Registries x-internal: true /har/api/v3/registries/{id}/rebuild-index: post: description: Trigger an asynchronous rebuild of the repository index for the given registry. The rebuild runs in the background; this endpoint returns immediately once the request is accepted. Index rebuild is package-type specific — it is currently supported only for HELM_HTTP registries. Registries whose package type does not maintain a rebuildable index return 405. operationId: RebuildRegistryIndexV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/IdPathParamV3' responses: '202': $ref: '#/components/responses/RebuildRegistryIndexAcceptedV3' '405': content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Index rebuild is not supported for this registry's package type. default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Rebuild the index for a registry tags: - Registry V3 - Registries x-internal: false /har/api/v3/registries/{id}/restore: post: description: Restore a previously soft-deleted registry by ID operationId: RestoreRegistryV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/IdPathParamV3' responses: '200': description: Restored successfully default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Restore a Soft-Deleted Registry tags: - Registry V3 - Registries x-internal: true /har/api/v3/registries/stats: post: description: Get statistics (packageCount, size, downloadCount, artifactsCount) for a list of registries by their UUIDs. operationId: GetRegistriesStatsV3 parameters: - $ref: '#/components/parameters/AccountIdentifierV3' - $ref: '#/components/parameters/OrgIdentifierV3' - $ref: '#/components/parameters/ProjectIdentifierV3' requestBody: $ref: '#/components/requestBodies/RegistriesStatsRequestV3' responses: '200': $ref: '#/components/responses/RegistriesStatsResponseV3' default: content: application/json: schema: $ref: '#/components/schemas/ErrorV3' description: Error response. summary: Get statistics for multiple registries tags: - Registry V3 - Registries x-internal: false components: requestBodies: MetadataRequestV3: content: application/json: schema: $ref: '#/components/schemas/MetadataInputV3' description: Request body containing metadata key-value pairs to add or update RegistriesStatsRequestV3: content: application/json: schema: $ref: '#/components/schemas/RegistriesStatsRequestInputV3' description: Request body containing list of registry UUIDs to fetch stats for required: true parameters: RegistryScopeV3: description: "**Scope of registries to list**\n* **none** – current space only (default) * **ancestors** – current space **plus** all parent spaces * **descendants** – current space **plus** all child spaces \nIf omitted, `none` is assumed.\n" in: query name: scope schema: enum: - ancestors - descendants - none type: string DeleteFilterParamV3: in: query name: deleted schema: default: exclude enum: - exclude - include - only type: string RegistryTypeParamV3: description: Registry Type in: query name: type schema: enum: - VIRTUAL - UPSTREAM type: string PackageTypeListParamV3: description: Registry Package Type in: query name: package_types schema: items: type: string type: array IdPathParamV3: in: path name: id required: true schema: type: string ForceParamV3: in: query name: force schema: default: false type: boolean MetadataFilterListParamV3: description: Filter by metadata using key:value format in: query name: metadata schema: items: type: string type: array SortV3: description: 'The sort for the results. Accepted pattern: `sort_field:sort_order` where sort_field is the field name and sort_order is either `asc` or `desc`. Examples: `name:asc`, `modifiedAt:desc` ' in: query name: sort schema: type: string AccountIdentifierV3: description: 'Unique identifier for the Harness account. ' in: query name: account_identifier required: true schema: type: string SearchTermV3: description: 'Search term for filtering results. Example: `search_term=prod` might match keys like "production", "prod-env", etc. ' in: query name: search_term schema: type: string ProjectIdentifierV3: description: 'Unique identifier for the project within the organization. Example: `my_project` or `frontend_services` ' in: query name: project_identifier schema: type: string IncludeMetaParamV3: description: 'When `true`, include the `meta` object (e.g. active/deleted counts) in the response. ' in: query name: include_meta schema: default: false type: boolean PageNumberV3: description: 'The page number for pagination (0-indexed). Used to navigate through large result sets. Combined with `size` parameter to control which subset of results to return. Example: `page=0` returns the first page, `page=1` returns the second page ' in: query name: page schema: default: 0 format: int64 type: integer PageSizeV3: description: "The number of items to return per page.\n\nControls the page size for paginated results. \n\nExample: `size=50` returns up to 50 items per page\n" in: query name: size schema: default: 20 format: int64 maximum: 100 minimum: 1 type: integer OrgIdentifierV3: description: 'Unique identifier for the organization within the account. Example: `default` or `engineering_org` ' in: query name: org_identifier schema: type: string responses: RebuildRegistryIndexAcceptedV3: description: Registry index rebuild request accepted for processing RegistriesStatsResponseV3: content: application/json: schema: $ref: '#/components/schemas/RegistriesStatsResponseBodyV3' description: Response containing statistics for the requested registries ListRegistryResponseV3: content: application/json: schema: $ref: '#/components/schemas/ListRegistriesResponseBodyV3' description: response for list registry MetadataResponseV3: content: application/json: schema: properties: data: description: Array of metadata entries items: $ref: '#/components/schemas/MetadataV3' type: array required: - data type: object description: Response containing all metadata entries for the requested entity schemas: MetadataV3: description: Metadata entry properties: id: description: Unique identifier for this metadata entry format: uuid type: string key: description: The metadata key name example: environment type: string type: $ref: '#/components/schemas/MetadataTypeV3' value: description: The metadata value example: production type: string required: - id - key - value - type type: object UserInfoV3: description: Structured user information for a principal properties: display_name: description: Human-readable display name type: string email: description: Email address type: string type: description: Principal type (user, service, service_account) type: string uid: description: Principal unique identifier (username) type: string type: object PageInfoV3: description: 'Pagination metadata. - `page` selects which page of results to return (0 = first page). - `size` controls how many items are returned per page. - `hasMore` is true if more results exist after this page. ' properties: hasMore: description: True if more results exist after this page. example: true type: boolean page: description: The current page (0-indexed) example: 0 format: int64 type: integer size: description: Number of items per page example: 20 format: int64 type: integer required: - page - size - hasMore type: object MetadataItemInputV3: description: Metadata key-value pair for create/update operations properties: key: description: The metadata key name (case-sensitive) example: environment maxLength: 128 minLength: 1 type: string value: description: The metadata value example: production maxLength: 256 minLength: 1 type: string required: - key - value type: object RegistriesStatsResponseBodyV3: description: Response body containing registry statistics properties: items: description: List of registry statistics items: $ref: '#/components/schemas/RegistryStatsV3' type: array required: - items type: object DeletedAtMsV3: description: Unix timestamp in milliseconds when the resource was soft-deleted example: 1736360000456 format: int64 type: - integer - 'null' MetaV3: description: Metadata about the list response properties: activeCount: description: Count of active (non-deleted) entities example: 95 format: int64 type: integer deletedCount: description: Count of soft-deleted entities example: 5 format: int64 type: integer required: - activeCount - deletedCount type: object PackageTypeV3: description: 'Package type. Known values include: DOCKER, MAVEN, PYTHON, GENERIC, HELM, HELM_HTTP, NUGET, NPM, RPM, CARGO, COMPOSER, GO, HUGGINGFACE, CONDA, DART, SWIFT, PUPPET, RUBY, RAW, DEBIAN, CONAN, TERRAFORM. This field is extensible; clients must handle unknown values. ' example: DOCKER type: string x-extensible-enum: - DOCKER - MAVEN - PYTHON - GENERIC - HELM - HELM_HTTP - NUGET - NPM - RPM - CARGO - COMPOSER - GO - HUGGINGFACE - CONDA - DART - SWIFT - PUPPET - RUBY - RAW - DEBIAN - CONAN - TERRAFORM - CRAN ErrorV3: description: An error response properties: error: $ref: '#/components/schemas/ApiErrorsV3' required: - error type: object RegistryV3: description: Registry Metadata properties: deletedAt: $ref: '#/components/schemas/DeletedAtMsV3' deletedBy: $ref: '#/components/schemas/UserInfoV3' description: type: string id: format: uuid type: string isPublic: type: boolean modifiedAt: $ref: '#/components/schemas/ModifiedAtMsV3' modifiedBy: $ref: '#/components/schemas/UserInfoV3' name: type: string orgIdentifier: $ref: '#/components/schemas/orgIdentifier' packageType: $ref: '#/components/schemas/PackageTypeV3' path: type: string projectIdentifier: $ref: '#/components/schemas/projectIdentifier' type: $ref: '#/components/schemas/RegistryTypeV3' url: type: string required: - id - name - type - packageType - isPublic - url type: object MetadataInputV3: description: 'Request payload containing metadata key-value pairs to add or update. ' example: metadata: - key: environment value: production - key: team value: backend properties: metadata: description: Array of metadata key-value pairs items: $ref: '#/components/schemas/MetadataItemInputV3' maxItems: 50 minItems: 1 type: array required: - metadata type: object RegistriesStatsRequestInputV3: description: Request input for fetching registry statistics properties: registryIds: description: List of registry UUIDs to fetch statistics for items: format: uuid type: string maxItems: 100 type: array required: - registryIds type: object MetadataTypeV3: description: Indicates if metadata was manually added (MANUAL) or system-generated (AUTO) enum: - MANUAL - AUTO type: string ListRegistriesResponseBodyV3: allOf: - $ref: '#/components/schemas/PageInfoV3' - properties: items: items: $ref: '#/components/schemas/RegistryV3' type: array meta: $ref: '#/components/schemas/MetaV3' required: - items type: object ModifiedAtMsV3: description: Unix timestamp in milliseconds when the resource was last modified example: 1736360000123 format: int64 type: - integer - 'null' RegistryTypeV3: description: refers to type of registry i.e virtual or upstream enum: - VIRTUAL - UPSTREAM type: string projectIdentifier: type: string RegistryStatsV3: description: Statistics for a single registry properties: artifactsCount: description: Total number of artifacts in the registry format: int64 type: integer downloadCount: description: Total download count for the registry format: int64 type: integer id: description: Registry UUID format: uuid type: string packageCount: description: Total number of packages in the registry format: int64 type: integer size: description: Total size of the registry (human-readable format) type: string required: - id type: object orgIdentifier: type: string ApiErrorsV3: properties: code: description: For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported. maxLength: 5000 type: string message: description: A human-readable message providing more details about the error. These messages can be shown to users. maxLength: 40000 type: string param: description: If the error is parameter-specific, the parameter related to the error. For example, we can use this to display a message near the correct form field. maxLength: 5000 type: string type: description: The type of error returned. enum: - INVALID_REQUEST_ERROR - AUTHENTICATION_ERROR - PERMISSION_ERROR - API_ERROR type: string required: - type title: APIErrors type: object securitySchemes: x-api-key: name: x-api-key type: apiKey in: header description: API key is a token provided while making the API calls. This is used to authenticate the client at the exposed endpoint. externalDocs: description: Find out more about Swagger url: http://swagger.io x-stoplight: id: oc91t4vrfnjyi x-tagGroups: - name: Organizations tags: - Organization - name: Projects tags: - Org Project - Project - name: Secrets tags: - Account Secret - Org Secret - Project Secret - Secrets - name: Connectors tags: - Account Connector - Org Connector - Project Connector - Connectors - GoogleSecretManagerConnector - name: Roles tags: - Account Roles - Organization Roles - Project Roles - Roles - name: Resource Groups tags: - Account Resource Groups - Organization Resource Groups - Project Resource Groups - Filter Resource Groups - Harness Resource Group - Zendesk - name: Role Assignments tags: - Account Role Assignments - Org Role Assignments - Project Role Assignments - Role Assignments - name: Platform tags: - Access Control List - Account Banner - Account Banner - Account Licensed Modules - Account License Type - Account Webhooks - AccountSetting - Accounts - Analyze Account Access Policy - Analyze Organization Access Policy - Analyze Project Access Policy - ApiKey - Audit - AuditFilters - Authentication Settings - Canny - Devops Essentials License Data By Account - EULA - Filter - Harness Resource Type - Invite - IP Allowlist - Nextgen Ldap - Notification Channels - Notification Rules - OIDC - Oidc-Access-Token - Oidc-ID-Token - Org Webhooks - Permissions - Project Webhooks - Secret Managers - Service Account - Setting - SMTP - Source Code Manager - Token - User - User Group - Variables - name: Delegate tags: - Agent mTLS Endpoint Management - Delegate Download Resource - Delegate Group Tags Resource - Delegate Setup Resource - Delegate Token Resource - name: Pipelines tags: - Pipelines - Input Sets - Approvals - Pipeline Execution - Pipeline Dashboard - Pipeline Input Set - Pipeline - Pipeline Execution Details - Pipeline Execute - Pipeline Refresh - Pipeline data retention - Triggers - TriggersEvents - Webhook Triggers - Webhook Event Handler - DryRunPipeline - name: Artifact Registry tags: - Registries - Artifacts - Docker Artifacts - Helm Artifacts - quarantine - Webhooks - Spaces - Replication - Registry V3 - Registries - Registry V3 - Packages - Registry V3 - Versions - Registry V3 - Files - Registry V3 - Metadata - Registry V3 - Firewall - Registry V3 - Transfer - name: Database DevOps tags: - Database Schema - Database Instance - Deployed State - Execution Config - Migration State - name: CD tags: - K8s Release Service Mapping - CustomDeployment - Environments - EnvironmentGroup - Infrastructures - Usage - File Store - Service Dashboard - ServiceOverrides - Rollback - tas - name: Deployment Freeze tags: - Freeze CRUD - Freeze Evaluation - Freeze Schema - name: Services tags: - Account Services - Org Services - Project Services - Services - name: Rancher Infrastructures tags: - Account Rancher Infrastructure - Org Rancher Infrastructure - Project Rancher Infrastructure - name: Templates tags: - Account Template - Org Template - Project Template - Templates - Global Templates - name: GitOps tags: - Agents - Application - Applications - Certificates - Clusters - Dashboard Aggregates - Dashboards - GnuPGP Keys - GPG Keys - Hosts - Project mappings - Projects - Reconciler - Repositories - Repository Certificates - Repository credentials - ValidateHost - name: GitX tags: - GitX Webhooks - Org Gitx Webhooks - Project Gitx Webhooks - name: CACM tags: - Anomalies Ignorelist Rule - Anomalies - BI Dashboards - Budgets - Budget Groups - Cost Categories - Cloud Accounts - K8S Connectors Metadata - Notification Settings v2 - Overview - Data Job Status - Recommendation cost settings - Unit Metric - Anomaly Comments - Cloud and AI cost anomaly details - Cloud and AI cost anomalies v2 - Cost Details - Currency Preferences - External Data Provider - AiEngine - CACM governance cost settings - Governance Enforcement Recommendation APIs - Governance Alert - Governance Overview - Governance Recommendation APIs - RuleEnforcement - Rule Executions - Rule - Rule Sets - Perspectives Folders - Perspective Reports - Perspectives - Cost Category Jira Project Mapping - Recommendations Details - Recommendations - Recommendation Jira - Recommendation Preferences - Recommendation Presets - Recommendation Servicenow - Recommendation Tags - Recommendation Ignore List - AutoStopping Rules - AutoStopping Rules V2 - AutoStopping Load Balancers - AutoStopping Fixed Schedules - AutoStopping Alerts - Commitment Orchestrator Events APIs - name: Feature Flags tags: - API Keys - Feature Flags - Targets - Target Groups - Environment Perspectives - Anomalies - Proxy - Tags - name: SRM tags: - Monitored Services - SLOs dashboard - NG SLOs - SLOs - Downtime - Srm Notification - name: Internal Developer Portal - IDP tags: - Entities - Teams - CatalogCustomProperties - Scores - DataSource - KubernetesDataPoints - AggregationRules - AppConfig - PluginInfo - LayoutProxy - Kinds - LayoutsV3 - LayoutsV4 - name: Environment Management - IDP tags: - Environment - Infrastructure - Instance - name: Custom Dashboards tags: - aida - dashboards - downloads - embed - folders - name: Policy Management tags: - dashboard - examples - policies - evaluate - evaluations - policysets - system - name: Code tags: - repository - status_checks - pullreq - upload - webhook - resource - rules - labels - name: IaCM tags: - usage - approvals - costs - executions - module-registry - workspaces - settings - tf-standard-backend - variables - name: STO tags: - Exemptions - Issues - Scans - Products - Test Targets - Target Variants - name: SEI tags: - Collection categories - Collections - Contributors - DORA - name: Git Sync (deprecated) tags: - Git Branches - Git Full Sync - Git Sync Settings - Git Sync - Git Sync Errors - name: Error Models tags: - Error Response - Governance Metadata - name: Supply Chain Security tags: - integration - PipelineInfraConfig - SBOM - Integration Step Config - Delete Step Config - Delete Repositories - Pipeline Store Config - Evidence Vault [Beta] - name: Release Management tags: - Release Groups - Releases - Orchestration Processes - Orchestration Activities - Orchestration Executions - Conflicts - Freeze - Reports - Uploads - name: Resilience Testing tags: - Actions - Action Templates - Chaos Components - Chaos Hubs - ChaosGuard Conditions - ChaosGuard Rules - DR Tests - Experiments - Experiment Templates - Faults - Fault Templates - Chaos Infrastructure - Health - Network Maps - Onboarding - Probes - Probe Templates - Chaos Recommendations - Risks