JFrog Artifactory Blobs API

Push and pull image layers (blobs)

OpenAPI Specification

artifactory-blobs-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: JFrog Artifactory Query Language (AQL) AQL Search Blobs 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: Blobs
  description: Push and pull image layers (blobs)
paths:
  /v2/{name}/blobs/{digest}:
    get:
      operationId: getBlob
      summary: JFrog Artifactory Get Blob (Layer)
      description: Retrieves a blob (layer) from the registry by its digest.
      tags:
      - Blobs
      parameters:
      - $ref: '#/components/parameters/ImageName'
      - name: digest
        in: path
        required: true
        description: Blob digest
        schema:
          type: string
          example: sha256:abc123...
      responses:
        '200':
          description: Blob content
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
          headers:
            Docker-Content-Digest:
              description: Digest of the blob
              schema:
                type: string
            Content-Length:
              description: Size of the blob in bytes
              schema:
                type: integer
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    head:
      operationId: checkBlobExists
      summary: JFrog Artifactory Check Blob Exists
      description: Checks if a blob exists in the registry without downloading it.
      tags:
      - Blobs
      parameters:
      - $ref: '#/components/parameters/ImageName'
      - name: digest
        in: path
        required: true
        description: Blob digest
        schema:
          type: string
      responses:
        '200':
          description: Blob exists
          headers:
            Docker-Content-Digest:
              description: Digest of the blob
              schema:
                type: string
            Content-Length:
              description: Size of the blob in bytes
              schema:
                type: integer
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteBlob
      summary: JFrog Artifactory Delete Blob
      description: Deletes a blob from the registry by its digest.
      tags:
      - Blobs
      parameters:
      - $ref: '#/components/parameters/ImageName'
      - name: digest
        in: path
        required: true
        description: Blob digest
        schema:
          type: string
      responses:
        '202':
          description: Blob deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/{name}/blobs/uploads/:
    post:
      operationId: initiateUpload
      summary: JFrog Artifactory Initiate Blob Upload
      description: Initiates a blob upload. Returns a session URL for uploading data. Supports monolithic upload via digest query parameter or chunked upload via the returned upload URL.
      tags:
      - Blobs
      parameters:
      - $ref: '#/components/parameters/ImageName'
      - name: digest
        in: query
        description: If provided with mount, attempts cross-repo mount. If provided alone with body, performs monolithic upload.
        schema:
          type: string
      - name: mount
        in: query
        description: Digest of blob to mount from another repository
        schema:
          type: string
      - name: from
        in: query
        description: Source repository for cross-repo mount
        schema:
          type: string
      responses:
        '202':
          description: Upload session started
          headers:
            Location:
              description: URL for the upload session
              schema:
                type: string
            Docker-Upload-UUID:
              description: Unique identifier for the upload session
              schema:
                type: string
            Range:
              description: Range of bytes received so far
              schema:
                type: string
        '201':
          description: Blob successfully mounted from another repository
          headers:
            Location:
              description: URL of the mounted blob
              schema:
                type: string
            Docker-Content-Digest:
              description: Digest of the mounted blob
              schema:
                type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v2/{name}/blobs/uploads/{uuid}:
    patch:
      operationId: uploadBlobChunk
      summary: JFrog Artifactory Upload Blob Chunk
      description: Uploads a chunk of data for the specified upload session.
      tags:
      - Blobs
      parameters:
      - $ref: '#/components/parameters/ImageName'
      - name: uuid
        in: path
        required: true
        description: Upload session UUID
        schema:
          type: string
      - name: Content-Range
        in: header
        description: Range of bytes being uploaded
        schema:
          type: string
          example: 0-1023
      requestBody:
        required: true
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '202':
          description: Chunk accepted
          headers:
            Location:
              description: URL for the next upload
              schema:
                type: string
            Docker-Upload-UUID:
              description: Upload session UUID
              schema:
                type: string
            Range:
              description: Range of bytes received
              schema:
                type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: completeUpload
      summary: JFrog Artifactory Complete Blob Upload
      description: Completes the upload session and creates the blob. The final chunk may be included in this request.
      tags:
      - Blobs
      parameters:
      - $ref: '#/components/parameters/ImageName'
      - name: uuid
        in: path
        required: true
        description: Upload session UUID
        schema:
          type: string
      - name: digest
        in: query
        required: true
        description: Expected digest of the complete blob
        schema:
          type: string
      requestBody:
        description: Optional final chunk of data
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
      responses:
        '201':
          description: Blob upload completed
          headers:
            Location:
              description: URL of the completed blob
              schema:
                type: string
            Docker-Content-Digest:
              description: Digest of the uploaded blob
              schema:
                type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: cancelUpload
      summary: JFrog Artifactory Cancel Blob Upload
      description: Cancels an in-progress blob upload.
      tags:
      - Blobs
      parameters:
      - $ref: '#/components/parameters/ImageName'
      - name: uuid
        in: path
        required: true
        description: Upload session UUID
        schema:
          type: string
      responses:
        '204':
          description: Upload cancelled
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: Error code
              message:
                type: string
                description: Error message
              detail:
                type: string
                description: Additional error details
  responses:
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    ImageName:
      name: name
      in: path
      required: true
      description: Docker image name, which may include multiple path components (e.g., library/nginx or myproject/myimage)
      schema:
        type: string
        example: library/nginx
  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