JFrog Artifactory Blobs API

Push and pull image layers (blobs)

Operations 7

GET /v2/{name}/blobs/{digest} JFrog Artifactory Get Blob (Layer) #
HEAD /v2/{name}/blobs/{digest} JFrog Artifactory Check Blob Exists #
DELETE /v2/{name}/blobs/{digest} JFrog Artifactory Delete Blob #
POST /v2/{name}/blobs/uploads/ JFrog Artifactory Initiate Blob Upload #
PATCH /v2/{name}/blobs/uploads/{uuid} JFrog Artifactory Upload Blob Chunk #
PUT /v2/{name}/blobs/uploads/{uuid} JFrog Artifactory Complete Blob Upload #
DELETE /v2/{name}/blobs/uploads/{uuid} JFrog Artifactory Cancel Blob Upload #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/artifactory-blobs-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

artifactory-blobs-api-openapi.yml Raw ↑
openapi: 3.2.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