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