JFrog Artifactory Repositories API

Create, read, update, and delete repositories

OpenAPI Specification

artifactory-repositories-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: JFrog Artifactory Query Language (AQL) AQL Search Repositories API
  description: Advanced search API using Artifactory Query Language (AQL), a SQL-like query language for finding and filtering artifacts, builds, and entries in JFrog Artifactory. AQL provides powerful querying capabilities including domain queries, field filtering, sorting, limiting, and inclusion of related entities.
  version: 7.x
  contact:
    name: JFrog Support
    url: https://jfrog.com/support/
    email: support@jfrog.com
  license:
    name: Proprietary
    url: https://jfrog.com/terms-of-service/
  termsOfService: https://jfrog.com/terms-of-service/
servers:
- url: https://{server}/artifactory
  description: JFrog Artifactory Server
  variables:
    server:
      default: myserver.jfrog.io
      description: Your JFrog Platform deployment URL
security:
- BearerAuth: []
- ApiKeyAuth: []
- BasicAuth: []
tags:
- name: Repositories
  description: Create, read, update, and delete repositories
paths:
  /api/repositories:
    get:
      operationId: listRepositories
      summary: JFrog Artifactory List All Repositories
      description: Returns a list of all repositories configured in the system, optionally filtered by type or package type.
      tags:
      - Repositories
      parameters:
      - name: type
        in: query
        description: Filter by repository type
        schema:
          type: string
          enum:
          - local
          - remote
          - virtual
          - federated
      - name: packageType
        in: query
        description: Filter by package type (e.g., maven, docker, npm, pypi, etc.)
        schema:
          type: string
      responses:
        '200':
          description: List of repositories
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RepositoryListItem'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/repositories/{repoKey}:
    get:
      operationId: getRepository
      summary: JFrog Artifactory Get Repository Configuration
      description: Returns the configuration for a single repository identified by its key.
      tags:
      - Repositories
      parameters:
      - $ref: '#/components/parameters/RepoKey'
      responses:
        '200':
          description: Repository configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RepositoryConfiguration'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: createOrReplaceRepository
      summary: JFrog Artifactory Create or Replace Repository
      description: Creates a new repository or replaces an existing one with the provided configuration.
      tags:
      - Repositories
      parameters:
      - $ref: '#/components/parameters/RepoKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RepositoryConfiguration'
      responses:
        '200':
          description: Repository created or replaced successfully
          content:
            text/plain:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: updateRepository
      summary: JFrog Artifactory Update Repository Configuration
      description: Updates an existing repository configuration. Only provided fields are updated.
      tags:
      - Repositories
      parameters:
      - $ref: '#/components/parameters/RepoKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RepositoryConfiguration'
      responses:
        '200':
          description: Repository updated successfully
          content:
            text/plain:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteRepository
      summary: JFrog Artifactory Delete Repository
      description: Removes a repository configuration. Content is deleted unless backed up.
      tags:
      - Repositories
      parameters:
      - $ref: '#/components/parameters/RepoKey'
      responses:
        '200':
          description: Repository deleted successfully
          content:
            text/plain:
              schema:
                type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    Forbidden:
      description: Forbidden - insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized - authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad request - invalid input
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    RepositoryListItem:
      type: object
      properties:
        key:
          type: string
          description: Repository key
          example: libs-release-local
        description:
          type: string
          description: Repository description
        type:
          type: string
          description: Repository type
          enum:
          - LOCAL
          - REMOTE
          - VIRTUAL
          - FEDERATED
        url:
          type: string
          description: Repository URL
          format: uri
        packageType:
          type: string
          description: Package type
          example: Maven
    ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              status:
                type: integer
                description: HTTP status code
              message:
                type: string
                description: Error message
    RepositoryConfiguration:
      type: object
      required:
      - key
      - rclass
      properties:
        key:
          type: string
          description: Repository key (unique identifier)
          example: libs-release-local
        rclass:
          type: string
          description: Repository class
          enum:
          - local
          - remote
          - virtual
          - federated
        packageType:
          type: string
          description: Package type
          enum:
          - maven
          - gradle
          - ivy
          - sbt
          - helm
          - cocoapods
          - opkg
          - rpm
          - nuget
          - cran
          - gems
          - npm
          - bower
          - debian
          - composer
          - pypi
          - docker
          - vagrant
          - gitlfs
          - go
          - conan
          - chef
          - puppet
          - generic
          - cargo
          - conda
          - swift
          - terraform
        description:
          type: string
          description: Repository description
        notes:
          type: string
          description: Internal notes
        includesPattern:
          type: string
          description: Artifact inclusion pattern
          default: '**/*'
        excludesPattern:
          type: string
          description: Artifact exclusion pattern
          default: ''
        repoLayoutRef:
          type: string
          description: Repository layout reference
        handleReleases:
          type: boolean
          description: Handle release artifacts
        handleSnapshots:
          type: boolean
          description: Handle snapshot artifacts
        maxUniqueSnapshots:
          type: integer
          description: Maximum number of unique snapshots to retain
        suppressPomConsistencyChecks:
          type: boolean
          description: Suppress POM consistency checks
        blackedOut:
          type: boolean
          description: Whether the repository is blacked out
        propertySets:
          type: array
          items:
            type: string
          description: List of property set names
        url:
          type: string
          description: Remote repository URL (for remote repos)
          format: uri
        username:
          type: string
          description: Username for remote repository authentication
        password:
          type: string
          description: Password for remote repository authentication
        repositories:
          type: array
          items:
            type: string
          description: List of resolved repositories (for virtual repos)
        defaultDeploymentRepo:
          type: string
          description: Default deployment repository (for virtual repos)
        xrayIndex:
          type: boolean
          description: Whether Xray indexing is enabled
        environments:
          type: array
          items:
            type: string
          description: Associated environments
  parameters:
    RepoKey:
      name: repoKey
      in: path
      required: true
      description: The unique key identifying the repository
      schema:
        type: string
        example: libs-release-local
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Access token authentication
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-JFrog-Art-Api
      description: API key authentication via header
    BasicAuth:
      type: http
      scheme: basic
      description: HTTP Basic authentication
externalDocs:
  description: Artifactory Query Language Documentation
  url: https://jfrog.com/help/r/jfrog-artifactory-documentation/artifactory-query-language