# Search Registry Files by path regex

Search files across a registry using a POSIX regular expression matched server-side against the full node path. Filter payload is sent in the request body so that regex characters such as ?, &, +, # and % do not need URL-encoding and are not truncated by proxies. Backs the CLI bulk-download flow: the server performs regex filtering and the client parallelizes the individual file downloads.

Endpoint: POST /har/api/v3/files/search
Version: 1.0
Security: x-api-key

## Query parameters:

  - `account_identifier` (string, required)
    Unique identifier for the Harness account.

  - `org_identifier` (string)
    Unique identifier for the organization within the account.

Example: default or engineering_org

  - `project_identifier` (string)
    Unique identifier for the project within the organization.

Example: my_project or frontend_services

  - `page` (integer)
    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

  - `size` (integer)
    The number of items to return per page.

Controls the page size for paginated results. 

Example: size=50 returns up to 50 items per page

  - `sort` (string)
    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

## Request fields (application/json):

  - `regex` (string, required)
    POSIX regular expression matched server-side against file paths. Evaluated by Postgres (~ operator, case-sensitive). Max length 500.

  - `registry` (string, required)
    Registry identifier (name).

## Response 200 fields (application/json):

  - `hasMore` (boolean, required)
    True if more results exist after this page.
    Example: true

  - `page` (integer, required)
    The current page (0-indexed)

  - `size` (integer, required)
    Number of items per page
    Example: 20

  - `items` (array, required)

  - `items.createdAt` (integer,null, required)
    Unix timestamp in milliseconds when the resource was created
    Example: 1736360000123

  - `items.createdBy` (object)
    Structured user information for a principal

  - `items.createdBy.display_name` (string)
    Human-readable display name

  - `items.createdBy.email` (string)
    Email address

  - `items.createdBy.type` (string)
    Principal type (user, service, service_account)

  - `items.createdBy.uid` (string)
    Principal unique identifier (username)

  - `items.downloadCmd` (string, required)

  - `items.downloadUrl` (string)

  - `items.id` (string, required)

  - `items.md5` (string, required)

  - `items.name` (string, required)

  - `items.path` (string, required)

  - `items.sha1` (string, required)

  - `items.sha256` (string, required)

  - `items.sha512` (string, required)

  - `items.size` (string, required)

  - `meta` (object)
    Metadata about the list response

  - `meta.activeCount` (integer, required)
    Count of active (non-deleted) entities
    Example: 95

  - `meta.deletedCount` (integer, required)
    Count of soft-deleted entities
    Example: 5

## Response default fields (application/json):

  - `error` (object, required)

  - `error.code` (string)
    For some errors that could be handled programmatically, a short string indicating the [error code](https://docs.stripe.com/error-codes) reported.

  - `error.message` (string)
    A human-readable message providing more details about the error. These messages can be shown to users.

  - `error.param` (string)
    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.

  - `error.type` (string, required)
    The type of error returned.
    Enum: "INVALID_REQUEST_ERROR", "AUTHENTICATION_ERROR", "PERMISSION_ERROR", "API_ERROR"


