JFrog Artifactory REST API V2

The next generation Artifactory REST API providing improved endpoints for repository management, artifact operations, and system administration with enhanced consistency and functionality.

OpenAPI Specification

jfrog-artifactory-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: JFrog Artifactory REST API
  description: >-
    REST API for managing artifacts, repositories, security, and system
    configuration in JFrog Artifactory. Artifactory is a universal binary
    repository manager that integrates with all major CI/CD and DevOps tools
    to provide an end-to-end automated solution for tracking artifacts from
    development to production.
  version: 7.x
  contact:
    name: JFrog
    url: https://jfrog.com
  license:
    name: Proprietary
    url: https://jfrog.com/terms-of-service/
  termsOfService: https://jfrog.com/terms-of-service/
externalDocs:
  description: JFrog Artifactory REST API Documentation
  url: https://jfrog.com/help/r/jfrog-rest-apis/artifactory-rest-apis
servers:
  - url: https://{server}.jfrog.io/artifactory
    description: JFrog Cloud
    variables:
      server:
        default: myserver
        description: Your JFrog server name
  - url: https://{host}/artifactory
    description: Self-hosted JFrog instance
    variables:
      host:
        default: localhost:8082
        description: Your self-hosted JFrog server host
security:
  - bearerAuth: []
  - apiKeyAuth: []
  - basicAuth: []
tags:
  - name: Artifacts & Storage
    description: Deploy, retrieve, copy, move, and delete artifacts
  - name: Builds
    description: Build information and promotion
  - name: Properties
    description: Set, update, and delete artifact properties
  - name: Replication
    description: Push and pull replication configuration
  - name: Repositories
    description: Create, read, update, and delete repositories
  - name: Searches
    description: Search for artifacts using various criteria
  - name: Security
    description: Users, groups, permissions, and access tokens
  - name: System & Configuration
    description: System health, configuration, and version information
paths:
  /api/system/ping:
    get:
      operationId: systemPing
      summary: JFrog System Health Ping
      description: Returns a simple status response indicating whether Artifactory is accessible.
      tags:
        - System & Configuration
      responses:
        '200':
          description: Artifactory is accessible
          content:
            text/plain:
              schema:
                type: string
                example: OK
  /api/system/version:
    get:
      operationId: getSystemVersion
      summary: JFrog Get Version Information
      description: Returns version and build information for the Artifactory instance.
      tags:
        - System & Configuration
      responses:
        '200':
          description: Version information retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemVersion'
  /api/system/configuration:
    get:
      operationId: getSystemConfiguration
      summary: JFrog Get System Configuration
      description: Returns the full system configuration as an XML descriptor.
      tags:
        - System & Configuration
      responses:
        '200':
          description: System configuration retrieved
          content:
            application/xml:
              schema:
                type: string
    patch:
      operationId: updateSystemConfiguration
      summary: JFrog Update System Configuration
      description: Applies a partial update to the system configuration using a YAML payload.
      tags:
        - System & Configuration
      requestBody:
        required: true
        content:
          application/yaml:
            schema:
              type: string
      responses:
        '200':
          description: Configuration updated successfully
  /api/system/licenses:
    get:
      operationId: getSystemLicenses
      summary: JFrog Get License Information
      description: Returns the installed license details.
      tags:
        - System & Configuration
      responses:
        '200':
          description: License information retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LicenseInfo'
  /api/storage/{repoKey}/{itemPath}:
    get:
      operationId: getStorageInfo
      summary: JFrog Get File or Folder Info
      description: Returns storage information for a file or folder including size, checksums, and metadata.
      tags:
        - Artifacts & Storage
      parameters:
        - name: repoKey
          in: path
          required: true
          schema:
            type: string
          description: Repository key
        - name: itemPath
          in: path
          required: true
          schema:
            type: string
          description: Path to the item within the repository
      responses:
        '200':
          description: Item info retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileInfo'
        '404':
          description: Item not found
  /api/storage/{repoKey}:
    get:
      operationId: getRepositoryStorageInfo
      summary: JFrog Get Repository Storage Summary
      description: Returns storage summary for the specified repository.
      tags:
        - Artifacts & Storage
      parameters:
        - name: repoKey
          in: path
          required: true
          schema:
            type: string
          description: Repository key
      responses:
        '200':
          description: Repository storage info retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FolderInfo'
  /api/storageinfo:
    get:
      operationId: getStorageSummaryInfo
      summary: JFrog Get Storage Summary
      description: Returns storage summary information about repositories, binaries, and file store.
      tags:
        - Artifacts & Storage
      responses:
        '200':
          description: Storage summary retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StorageSummary'
  /{repoKey}/{itemPath}:
    get:
      operationId: retrieveArtifact
      summary: JFrog Retrieve Artifact
      description: Downloads an artifact or returns folder info from the specified repository path.
      tags:
        - Artifacts & Storage
      parameters:
        - name: repoKey
          in: path
          required: true
          schema:
            type: string
          description: Repository key
        - name: itemPath
          in: path
          required: true
          schema:
            type: string
          description: Path to the artifact
      responses:
        '200':
          description: Artifact retrieved
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
        '404':
          description: Artifact not found
    put:
      operationId: deployArtifact
      summary: JFrog Deploy Artifact
      description: Deploys an artifact to the specified repository path.
      tags:
        - Artifacts & Storage
      parameters:
        - name: repoKey
          in: path
          required: true
          schema:
            type: string
          description: Repository key
        - name: itemPath
          in: path
          required: true
          schema:
            type: string
          description: Path for the artifact
        - name: X-Checksum-Sha1
          in: header
          schema:
            type: string
          description: SHA1 checksum of the artifact
        - name: X-Checksum-Sha256
          in: header
          schema:
            type: string
          description: SHA256 checksum of the artifact
        - name: X-Checksum-Md5
          in: header
          schema:
            type: string
          description: MD5 checksum of the artifact
      requestBody:
        required: true
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '201':
          description: Artifact deployed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeployResponse'
        '403':
          description: Forbidden
        '409':
          description: Conflict - artifact already exists
    delete:
      operationId: deleteArtifact
      summary: JFrog Delete Artifact
      description: Deletes an artifact or folder from the specified repository path.
      tags:
        - Artifacts & Storage
      parameters:
        - name: repoKey
          in: path
          required: true
          schema:
            type: string
          description: Repository key
        - name: itemPath
          in: path
          required: true
          schema:
            type: string
          description: Path to the artifact
      responses:
        '204':
          description: Artifact deleted successfully
        '404':
          description: Artifact not found
  /api/copy/{srcRepoKey}/{srcItemPath}:
    post:
      operationId: copyArtifact
      summary: JFrog Copy Artifact
      description: Copies an artifact or folder to a new location.
      tags:
        - Artifacts & Storage
      parameters:
        - name: srcRepoKey
          in: path
          required: true
          schema:
            type: string
          description: Source repository key
        - name: srcItemPath
          in: path
          required: true
          schema:
            type: string
          description: Source item path
        - name: to
          in: query
          required: true
          schema:
            type: string
          description: Target path in the format repoKey/path
        - name: dry
          in: query
          schema:
            type: integer
            enum: [0, 1]
            default: 0
          description: Dry run mode (1=dry run, 0=execute)
        - name: suppressLayouts
          in: query
          schema:
            type: integer
            enum: [0, 1]
            default: 0
          description: Suppress cross-layout translations
        - name: failFast
          in: query
          schema:
            type: integer
            enum: [0, 1]
            default: 0
          description: Fail on first error
      responses:
        '200':
          description: Copy completed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoveOrCopyResponse'
  /api/move/{srcRepoKey}/{srcItemPath}:
    post:
      operationId: moveArtifact
      summary: JFrog Move Artifact
      description: Moves an artifact or folder to a new location.
      tags:
        - Artifacts & Storage
      parameters:
        - name: srcRepoKey
          in: path
          required: true
          schema:
            type: string
          description: Source repository key
        - name: srcItemPath
          in: path
          required: true
          schema:
            type: string
          description: Source item path
        - name: to
          in: query
          required: true
          schema:
            type: string
          description: Target path in the format repoKey/path
        - name: dry
          in: query
          schema:
            type: integer
            enum: [0, 1]
            default: 0
          description: Dry run mode
        - name: suppressLayouts
          in: query
          schema:
            type: integer
            enum: [0, 1]
            default: 0
          description: Suppress cross-layout translations
        - name: failFast
          in: query
          schema:
            type: integer
            enum: [0, 1]
            default: 0
          description: Fail on first error
      responses:
        '200':
          description: Move completed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoveOrCopyResponse'
  /api/repositories:
    get:
      operationId: listRepositories
      summary: JFrog List All Repositories
      description: Returns a list of all repositories with minimal information.
      tags:
        - Repositories
      parameters:
        - name: type
          in: query
          schema:
            type: string
            enum: [local, remote, virtual, federated, distribution]
          description: Filter by repository type
        - name: packageType
          in: query
          schema:
            type: string
          description: Filter by package type (e.g., maven, npm, docker)
      responses:
        '200':
          description: Repository list retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RepositoryListItem'
  /api/repositories/{repoKey}:
    get:
      operationId: getRepository
      summary: JFrog Get Repository Configuration
      description: Returns the full configuration for a specific repository.
      tags:
        - Repositories
      parameters:
        - name: repoKey
          in: path
          required: true
          schema:
            type: string
          description: Repository key
      responses:
        '200':
          description: Repository configuration retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepositoryConfiguration'
        '404':
          description: Repository not found
    put:
      operationId: createRepository
      summary: JFrog Create Repository
      description: Creates a new repository with the specified configuration.
      tags:
        - Repositories
      parameters:
        - name: repoKey
          in: path
          required: true
          schema:
            type: string
          description: Repository key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RepositoryConfiguration'
      responses:
        '200':
          description: Repository created successfully
        '400':
          description: Bad request
        '409':
          description: Repository already exists
    post:
      operationId: updateRepository
      summary: JFrog Update Repository Configuration
      description: Updates configuration of an existing repository.
      tags:
        - Repositories
      parameters:
        - name: repoKey
          in: path
          required: true
          schema:
            type: string
          description: Repository key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RepositoryConfiguration'
      responses:
        '200':
          description: Repository updated successfully
        '404':
          description: Repository not found
    delete:
      operationId: deleteRepository
      summary: JFrog Delete Repository
      description: Removes a repository configuration and optionally deletes its content.
      tags:
        - Repositories
      parameters:
        - name: repoKey
          in: path
          required: true
          schema:
            type: string
          description: Repository key
      responses:
        '200':
          description: Repository deleted
        '404':
          description: Repository not found
  /api/search/aql:
    post:
      operationId: executeAqlSearch
      summary: JFrog Execute AQL Search
      description: Executes an Artifactory Query Language (AQL) search query.
      tags:
        - Searches
      requestBody:
        required: true
        content:
          text/plain:
            schema:
              type: string
              example: 'items.find({"repo":"my-repo","path":{"$match":"*"}})'
      responses:
        '200':
          description: Search results returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AqlSearchResult'
  /api/search/gavc:
    get:
      operationId: searchByGAVC
      summary: JFrog GAVC Search
      description: Search for artifacts by Maven coordinates (GroupId, ArtifactId, Version, Classifier).
      tags:
        - Searches
      parameters:
        - name: g
          in: query
          schema:
            type: string
          description: Group ID
        - name: a
          in: query
          schema:
            type: string
          description: Artifact ID
        - name: v
          in: query
          schema:
            type: string
          description: Version
        - name: c
          in: query
          schema:
            type: string
          description: Classifier
        - name: repos
          in: query
          schema:
            type: string
          description: Comma-separated list of repositories to search
      responses:
        '200':
          description: Search results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResult'
  /api/search/prop:
    get:
      operationId: searchByProperties
      summary: JFrog Property Search
      description: Search for artifacts by property values.
      tags:
        - Searches
      parameters:
        - name: repos
          in: query
          schema:
            type: string
          description: Comma-separated list of repositories to search
      responses:
        '200':
          description: Search results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResult'
  /api/search/checksum:
    get:
      operationId: searchByChecksum
      summary: JFrog Checksum Search
      description: Search for artifacts by their checksum values.
      tags:
        - Searches
      parameters:
        - name: sha1
          in: query
          schema:
            type: string
          description: SHA1 checksum to search for
        - name: sha256
          in: query
          schema:
            type: string
          description: SHA256 checksum to search for
        - name: md5
          in: query
          schema:
            type: string
          description: MD5 checksum to search for
        - name: repos
          in: query
          schema:
            type: string
          description: Comma-separated list of repositories to search
      responses:
        '200':
          description: Search results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResult'
  /api/search/latestVersion:
    get:
      operationId: getLatestVersion
      summary: JFrog Get Latest Artifact Version
      description: Returns the latest version of an artifact by group and artifact ID.
      tags:
        - Searches
      parameters:
        - name: g
          in: query
          required: true
          schema:
            type: string
          description: Group ID
        - name: a
          in: query
          required: true
          schema:
            type: string
          description: Artifact ID
        - name: repos
          in: query
          schema:
            type: string
          description: Comma-separated list of repositories
      responses:
        '200':
          description: Latest version string
          content:
            text/plain:
              schema:
                type: string
  /api/security/users:
    get:
      operationId: listUsers
      summary: JFrog List Users
      description: Returns a list of all users.
      tags:
        - Security
      responses:
        '200':
          description: Users list retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserSummary'
  /api/security/users/{username}:
    get:
      operationId: getUser
      summary: JFrog Get User Details
      description: Returns details for a specific user.
      tags:
        - Security
      parameters:
        - name: username
          in: path
          required: true
          schema:
            type: string
          description: Username
      responses:
        '200':
          description: User details retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '404':
          description: User not found
    put:
      operationId: createOrReplaceUser
      summary: JFrog Create or Replace User
      description: Creates a new user or replaces an existing user.
      tags:
        - Security
      parameters:
        - name: username
          in: path
          required: true
          schema:
            type: string
          description: Username
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
      responses:
        '201':
          description: User created
        '200':
          description: User replaced
    delete:
      operationId: deleteUser
      summary: JFrog Delete User
      description: Removes a user.
      tags:
        - Security
      parameters:
        - name: username
          in: path
          required: true
          schema:
            type: string
          description: Username
      responses:
        '200':
          description: User deleted
        '404':
          description: User not found
  /api/security/groups:
    get:
      operationId: listGroups
      summary: JFrog List Groups
      description: Returns a list of all groups.
      tags:
        - Security
      responses:
        '200':
          description: Groups list retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GroupSummary'
  /api/security/groups/{groupName}:
    get:
      operationId: getGroup
      summary: JFrog Get Group Details
      description: Returns details for a specific group.
      tags:
        - Security
      parameters:
        - name: groupName
          in: path
          required: true
          schema:
            type: string
          description: Group name
      responses:
        '200':
          description: Group details retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
    put:
      operationId: createOrReplaceGroup
      summary: JFrog Create or Replace Group
      description: Creates a new group or replaces an existing group.
      tags:
        - Security
      parameters:
        - name: groupName
          in: path
          required: true
          schema:
            type: string
          description: Group name
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
      responses:
        '201':
          description: Group created
        '200':
          description: Group replaced
    delete:
      operationId: deleteGroup
      summary: JFrog Delete Group
      description: Removes a group.
      tags:
        - Security
      parameters:
        - name: groupName
          in: path
          required: true
          schema:
            type: string
          description: Group name
      responses:
        '200':
          description: Group deleted
  /api/security/permissions:
    get:
      operationId: listPermissionTargets
      summary: JFrog List Permission Targets
      description: Returns a list of all permission targets.
      tags:
        - Security
      responses:
        '200':
          description: Permission targets list retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PermissionTargetSummary'
  /api/security/permissions/{permissionTargetName}:
    get:
      operationId: getPermissionTarget
      summary: JFrog Get Permission Target
      description: Returns configuration details for a specific permission target.
      tags:
        - Security
      parameters:
        - name: permissionTargetName
          in: path
          required: true
          schema:
            type: string
          description: Permission target name
      responses:
        '200':
          description: Permission target details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionTarget'
    put:
      operationId: createOrReplacePermissionTarget
      summary: JFrog Create or Replace Permission Target
      description: Creates a new or replaces an existing permission target.
      tags:
        - Security
      parameters:
        - name: permissionTargetName
          in: path
          required: true
          schema:
            type: string
          description: Permission target name
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PermissionTarget'
      responses:
        '200':
          description: Permission target created/replaced
    delete:
      operationId: deletePermissionTarget
      summary: JFrog Delete Permission Target
      description: Removes a permission target.
      tags:
        - Security
      parameters:
        - name: permissionTargetName
          in: path
          required: true
          schema:
            type: string
          description: Permission target name
      responses:
        '200':
          description: Permission target deleted
  /api/security/token:
    post:
      operationId: createToken
      summary: JFrog Create Access Token
      description: Creates a new access token for authentication.
      tags:
        - Security
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                username:
                  type: string
                  description: The user to create the token for
                scope:
                  type: string
                  description: The scope of the token
                expires_in:
                  type: integer
                  description: Token expiry in seconds (0 for non-expiring)
                refreshable:
                  type: boolean
                  description: Whether the token is refreshable
      responses:
        '200':
          description: Token created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessToken'
  /api/build:
    get:
      operationId: listBuilds
      summary: JFrog List All Builds
      description: Returns a list of all builds stored in Artifactory.
      tags:
        - Builds
      responses:
        '200':
          description: Builds list retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildsList'
  /api/build/{buildName}:
    get:
      operationId: getBuildRuns
      summary: JFrog Get Build Runs
      description: Returns all runs for a specific build.
      tags:
        - Builds
      parameters:
        - name: buildName
          in: path
          required: true
          schema:
            type: string
          description: Build name
      responses:
        '200':
          description: Build runs retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildRuns'
  /api/build/{buildName}/{buildNumber}:
    get:
      operationId: getBuildInfo
      summary: JFrog Get Build Information
      description: Returns full build information for a specific build run.
      tags:
        - Builds
      parameters:
        - name: buildName
          in: path
          required: true
          schema:
            type: string
          description: Build name
        - name: buildNumber
          in: path
          required: true
          schema:
            type: string
          description: Build number
      responses:
        '200':
          description: Build info retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuildInfo'
  /api/build/promote/{buildName}/{buildNumber}:
    post:
      operationId: promoteBuild
      summary: JFrog Promote Build
      description: Promotes a build by moving or copying artifacts to a target repository.
      tags:
        - Builds
      parameters:
        - name: buildName
          in: path
          required: true
          schema:
            type: string
          description: Build name
        - name: buildNumber
          in: path
          required: true
          schema:
            type: string
          description: Build number
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BuildPromotion'
      responses:
        '200':
          description: Build promoted successfully
  /api/replications:
    get:
      operationId: listReplications
      summary: JFrog List All Replications
      description: Returns a list of all replication configurations.
      tags:
        - Replication
      responses:
        '200':
          description: Replication list retrieved
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ReplicationConfig'
  /api/replications/{repoKey}:
    get:
      operationId: getReplication
      summary: JFrog Get Replication Configuration
      description: Returns replication configuration for a specific repository.
      tags:
        - Replication
      parameters:
        - name: repoKey
          in: path
          required: true
          schema:
            type: string
          description: Repository key
      responses:
        '200':
          description: Replication config retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReplicationConfig'
    put:
      operationId: createOrReplaceReplication
      summary: JFrog Create or Replace Replication
      description: Creates or replaces a replication configuration for a repository.
      tags:
        - Replication
      parameters:
        - name: repoKey
          in: path
          required: true
          schema:
            type: string
          description: Repository key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReplicationConfig'
      responses:
        '200':
          description: Replication config created/replaced
    delete:
      operationId: deleteReplication
      summary: JFrog Delete Replication
      description: Removes a replication configuration.
      tags:
        - Replication
      parameters:
        - name: repoKey
          in: path
          required: true
          schema:
            type: string
          description: Repository key
      responses:
        '200':
          description: Replication config deleted
  /api/storage/{repoKey}/{itemPath}?properties:
    get:
      operationId: getItemProperties
      summary: JFrog Get Item Properties
      description: Returns properties set on an artifact or folder.
      tags:
        - Properties
      parameters:
        - name: repoKey
          in: path
          required: true
          schema:
            type: string
          description: Repository key
        - name: itemPath
          in: path
          required: true
          schema:
            type: string
          description: Item path
      responses:
        '200':
          description: Properties retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemProperties'
    put:
      operationId: setItemProperties
      summary: JFrog Set Item Properties
      description: Sets properties on an artifact or folder.
      tags:
        - Properties
      parameters:
        - 

# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/jfrog/refs/heads/main/openapi/jfrog-artifactory-openapi.yml