JFrog Artifactory REST API

REST API for managing artifacts, repositories, security, and system configuration in JFrog Artifactory. Provides endpoints for uploading, downloading, searching, and managing binary artifacts across all package types, including the Skills repository type for AI Agent Skills published via the JFrog AI Catalog.

Documentation

Specifications

Other Resources

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