GoHarbor Search API
The search API from GoHarbor — 1 operation(s) for search.
The search API from GoHarbor — 1 operation(s) for search.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/goharbor-search-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Harbor Search API
description: These APIs provide services for manipulating Harbor project.
version: '2.0'
servers:
- url: http://localhost/api/v2.0
- url: https://localhost/api/v2.0
security:
- basic: []
- {}
tags:
- name: Search
paths:
/search:
get:
summary: Search for projects and repositories
description: The Search endpoint returns information about the projects and repositories offered at public status or related to the current logged in user. The response includes the project and repository list in a proper display order.
parameters:
- $ref: '#/components/parameters/requestId'
- name: q
in: query
description: Search parameter for project and repository name.
required: true
schema:
type: string
tags:
- Search
operationId: search
responses:
'200':
description: An array of search results
content:
application/json:
schema:
$ref: '#/components/schemas/Search'
'500':
$ref: '#/components/responses/500'
components:
schemas:
Errors:
description: The error array that describe the errors got during the handling of request
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/Error'
CVEAllowlistItem:
type: object
description: The item in CVE allowlist
properties:
cve_id:
type: string
description: The ID of the CVE, such as "CVE-2019-10164"
SearchRepository:
type: object
properties:
project_id:
type: integer
description: The ID of the project that the repository belongs to
project_name:
type: string
description: The name of the project that the repository belongs to
project_public:
type: boolean
description: The flag to indicate the publicity of the project that the repository belongs to (1 is public, 0 is not)
repository_name:
type: string
description: The name of the repository
pull_count:
type: integer
description: The count how many times the repository is pulled
artifact_count:
type: integer
description: The count of artifacts in the repository
Project:
type: object
properties:
project_id:
type: integer
format: int32
description: Project ID
owner_id:
type: integer
format: int32
description: The owner ID of the project always means the creator of the project.
name:
type: string
description: The name of the project.
registry_id:
type: integer
format: int64
description: The ID of referenced registry when the project is a proxy cache project.
creation_time:
type: string
format: date-time
description: The creation time of the project.
update_time:
type: string
format: date-time
description: The update time of the project.
deleted:
type: boolean
description: A deletion mark of the project.
owner_name:
type: string
description: The owner name of the project.
togglable:
type: boolean
description: Correspond to the UI about whether the project's publicity is updatable (for UI)
current_user_role_id:
type: integer
description: The role ID with highest permission of the current user who triggered the API (for UI). This attribute is deprecated and will be removed in future versions.
current_user_role_ids:
type: array
items:
type: integer
format: int32
description: The list of role ID of the current user who triggered the API (for UI)
repo_count:
type: integer
description: The number of the repositories under this project.
x-omitempty: false
metadata:
description: The metadata of the project.
$ref: '#/components/schemas/ProjectMetadata'
cve_allowlist:
description: The CVE allowlist of this project.
$ref: '#/components/schemas/CVEAllowlist'
Search:
type: object
properties:
project:
description: Search results of the projects that matched the filter keywords.
type: array
items:
$ref: '#/components/schemas/Project'
repository:
description: Search results of the repositories that matched the filter keywords.
type: array
items:
$ref: '#/components/schemas/SearchRepository'
Error:
description: a model for all the error response coming from harbor
type: object
properties:
code:
type: string
description: The error code
message:
type: string
description: The error message
example:
code: NOT_FOUND
message: artifact library/hello-world:latest not found
CVEAllowlist:
type: object
description: The CVE Allowlist for system or project
properties:
id:
type: integer
description: ID of the allowlist
project_id:
type: integer
description: ID of the project which the allowlist belongs to. For system level allowlist this attribute is zero.
expires_at:
type:
- integer
- 'null'
description: the time for expiration of the allowlist, in the form of seconds since epoch. This is an optional attribute, if it's not set the CVE allowlist does not expire.
items:
type: array
items:
$ref: '#/components/schemas/CVEAllowlistItem'
creation_time:
type: string
format: date-time
description: The creation time of the allowlist.
update_time:
type: string
format: date-time
description: The update time of the allowlist.
ProjectMetadata:
type: object
properties:
public:
type: string
description: The public status of the project. The valid values are "true", "false".
enable_content_trust:
type:
- string
- 'null'
description: Whether content trust is enabled or not. If it is enabled, user can't pull unsigned images from this project. The valid values are "true", "false".
enable_content_trust_cosign:
type:
- string
- 'null'
description: Whether cosign content trust is enabled or not. If it is enabled, user can't pull images without cosign signature from this project. The valid values are "true", "false".
prevent_vul:
type:
- string
- 'null'
description: Whether prevent the vulnerable images from running. The valid values are "true", "false".
severity:
type:
- string
- 'null'
description: If the vulnerability is high than severity defined here, the images can't be pulled. The valid values are "none", "low", "medium", "high", "critical".
auto_scan:
type:
- string
- 'null'
description: Whether scan images automatically when pushing. The valid values are "true", "false".
auto_sbom_generation:
type:
- string
- 'null'
description: Whether generating SBOM automatically when pushing a subject artifact. The valid values are "true", "false".
reuse_sys_cve_allowlist:
type:
- string
- 'null'
description: 'Whether this project reuse the system level CVE allowlist as the allowlist of its own. The valid values are "true", "false".
If it is set to "true" the actual allowlist associate with this project, if any, will be ignored.'
retention_id:
type:
- string
- 'null'
description: The ID of the tag retention policy for the project
proxy_speed_kb:
type:
- string
- 'null'
description: The bandwidth limit of proxy cache, in Kbps (kilobits per second). It limits the communication between Harbor and the upstream registry, not the client and the Harbor.
max_upstream_conn:
type:
- string
- 'null'
description: The max connection per artifact to the upstream registry in current proxy cache project, if it is -1, no limit to upstream registry connections
proxy_cache_local_on_not_found:
type:
- string
- 'null'
description: Whether to serve images from local cache when they are removed from the upstream registry. The valid values are "true", "false".
proxy_referrer_api:
type:
- string
- 'null'
description: Whether the proxy cache project should proxy OCI 1.1 referrer API requests to the upstream registry. The valid values are "true", "false".
proxy_cache_filter_pattern:
type:
- string
- 'null'
description: Repository filter pattern for proxy cache project. Only repositories matching the pattern will be proxied. Empty means allow all. Only has value when the current project is a proxy cache project.
proxy_cache_filter_kind:
type:
- string
- 'null'
description: 'Matching mode for proxy_cache_filter_pattern: "doublestar" (default, glob-style with ** support) or "regex". Only has value when the current project is a proxy cache project.'
parameters:
requestId:
name: X-Request-Id
description: An unique ID for the request
in: header
required: false
schema:
type: string
minLength: 1
responses:
'500':
description: Internal server error. Inspect the `errors` array in the response body for details.
headers:
X-Request-Id:
description: The ID of the corresponding request for the response
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/Errors'
securitySchemes:
basic:
type: http
scheme: basic