Everything an AI agent can do with the JFrog Artifactory API.

A reference guide for building AI agents: every method, how to authenticate, and the permissions each one needs.

Endpoints32
AuthenticationAccess token
Last updated23 June 2026
Orientation

How the JFrog Artifactory API works.

The JFrog Artifactory API is how an app or AI agent works with a binary repository: deploying and downloading artifacts, creating and configuring repositories, searching with the Artifactory Query Language, and publishing and promoting builds. Access is granted through an access token that acts as a chosen user or group, and permission targets decide which repositories that identity can read, deploy to, or delete from. Artifactory keeps its methods at stable paths rather than dated versions, and can push events to a webhook when an artifact is deployed or deleted.

32Endpoints
7Capability groups
17Read
15Write
6Permissions
Authentication
Calls authenticate with an access token sent as 'Authorization: Bearer '. JFrog recommends access tokens, which are scoped to a user or group, can be refreshable, and can carry an expiry. Basic authentication with a username and password also works. API keys are deprecated: JFrog disabled the creation of new API keys from version 7.98 and points new integrations to access tokens.
Permissions
Access is governed by permission targets. A permission target binds one or more repositories to users and groups, each granted a set of permissions: read to download and read metadata, deploy or cache to upload, annotate to set properties, delete or overwrite to remove or replace, manage Xray metadata, and manage to change the target itself. A token acts with the identity it is scoped to, so it reaches only what that identity's permission targets allow. Administrative calls, such as creating a repository or reading the instance storage summary, need admin privileges rather than a per-repository permission.
Versioning
The Artifactory REST API is not versioned by a dated string or a path segment. Methods live at stable paths under /artifactory and evolve through Artifactory's continuous release train, with deprecations announced in the release notes ahead of removal. The separate Access API, which issues tokens and manages permissions, carries its own path version, such as /access/api/v1.
Data model
Artifactory is a binary repository manager. Artifacts live at a path inside a repository, addressed as /artifactory/{repoKey}/{path}, and a repository is local, remote, or virtual. Storage and metadata endpoints sit under /artifactory/api/storage, search under /artifactory/api/search, builds under /artifactory/api/build, and security under /artifactory/api/security, with newer token and permission work under /access. Search is done through Artifactory Query Language, AQL, or the simpler name, coordinate, and property searches.
Connect & authenticate

Connection & authentication methods.

How an app or AI agent connects to JFrog Artifactory determines what it can reach. Calls go through a single REST surface, and an access token decides which repositories and actions are allowed.

Ways to connect

REST API

The Artifactory REST API answers under the /artifactory path on the JFrog Platform host. Methods live at stable paths and are not pinned to a dated version. The newer Access API for tokens and permissions answers under /access and carries its own path version.

Best forConnecting an app or AI agent to JFrog Artifactory.
Governed byThe access token and the permissions it carries on each repository.
Docs ↗

MCP server (Model Context Protocol)

JFrog publishes an official MCP server that lets an agent call the JFrog Platform through the Model Context Protocol, covering repository management, build tracking, and AQL search. It runs as a remotely hosted server for JFrog SaaS, and the source can also be run locally from npm or the Docker image. The source is at github.com/jfrog/mcp-jfrog.

Best forConnecting an app or AI agent to JFrog Artifactory.
Governed byThe access token set in the JFROG_ACCESS_TOKEN environment, and the permissions it carries.
Docs ↗

Webhooks

Webhooks deliver the chosen events, such as an artifact being deployed or deleted, to a receiver URL, so an integration is told when something changes rather than polling for it.

Best forConnecting an app or AI agent to JFrog Artifactory.
Governed byThe access token and the permissions it carries on each repository.
Docs ↗
Authentication

Access token

An access token is sent as a Bearer token in the Authorization header. It is scoped to a user or group and acts with that identity's permissions, and it can be made refreshable and given an expiry. JFrog recommends access tokens as the way to authenticate.

TokenAccess token (Bearer)
Best forProgrammatic and agent access
Docs ↗

Identity token

An identity token is an access token scoped to a single user's own permissions, generated from that user's profile. It is revoked automatically when the user is deleted or disabled.

TokenAccess token (Bearer)
Best forActing as one specific user
Docs ↗

Basic authentication

Username and password can be sent with basic authentication. It is the simplest route but ties a call to a full account, so a scoped access token gives finer control.

TokenUsername and password
Best forSimple or interactive use
Docs ↗

API key (deprecated)

API keys were a per-user key sent in the X-JFrog-Art-Api header. JFrog disabled the creation of new API keys from version 7.98 and directs new integrations to access tokens instead.

TokenAPI key
Best forLegacy integrations only
Docs ↗
Capability map

What an AI agent can do in JFrog Artifactory.

The Artifactory API is split into areas an agent can act on, such as repositories, artifacts, search, builds, and security. Each call needs a permission on the target repository, and some grant access to far more than others.

Endpoint reference

Every JFrog Artifactory API method.

Filter by method, access, or permission, or search any path. Select a row for version detail, rate limits, the related webhook event, and the source.

MethodEndpointWhat it doesAccessPermissionVersion

Repositories

List repositories, read a repository's configuration, and create, update, or delete a local, remote, or virtual repository.5

Returns repositories the token can see. Listing and reading configuration generally needs admin or manage permission on the instance.

Acts onrepository
Permission (capability)Read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Reading repository configuration needs admin or manage permission on the repository, which is broader than the read permission used to download artifacts.

Acts onrepository
Permission (capability)Manage
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Creating a repository is an administrative action that needs admin privileges, not a per-repository permission.

Acts onrepository
Permission (capability)Admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Updating configuration needs admin privileges. Only the fields supplied in the body are changed.

Acts onrepository
Permission (capability)Admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Deleting a repository removes its contents and needs admin privileges. There is no undo.

Acts onrepository
Permission (capability)Admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Artifacts

Deploy and download files, read an item's metadata and properties, and delete, copy, or move an artifact or folder.7

The deploy permission, shown as deploy or cache in a permission target, lets a token upload to that repository.

Acts onartifact
Permission (capability)Deploy
VersionAvailable since the API’s base version
Webhook eventartifact-deployed
Rate limitStandard limits apply

The read permission lets a token download artifacts and read metadata from that repository.

Acts onartifact
Permission (capability)Read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Reads file and folder information for a path the token can read.

Acts onartifact
Permission (capability)Read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Properties are key-value labels on an item. Setting them, rather than reading them, needs the annotate permission.

Acts onartifact
Permission (capability)Read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

The delete permission, shown as delete or overwrite in a permission target, lets a token remove or replace artifacts in that repository.

Acts onartifact
Permission (capability)Delete
VersionAvailable since the API’s base version
Webhook eventartifact-deleted
Rate limitStandard limits apply

Copying needs read on the source and deploy on the target. A dry-run flag previews the result without changing anything.

Acts onartifact
Permission (capability)Deploy
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Moving needs delete on the source, because it removes the original, and deploy on the target.

Acts onartifact
Permission (capability)Delete
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply
Run an Artifactory Query Language search, find artifacts by name, search by group, artifact, and version coordinates, and search by property.4

Artifactory Query Language, AQL, is the flexible search language for Artifactory. Results are limited to items the token can read. On JFrog Cloud a heavy AQL query can be throttled with a 429.

Acts onsearch result
Permission (capability)Read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitThrottled by concurrency on JFrog Cloud

Returns only artifacts the token can read.

Acts onsearch result
Permission (capability)Read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

GAVC is the group, artifact, version, and classifier naming used by Maven repositories. Returns only items the token can read.

Acts onsearch result
Permission (capability)Read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Matches items by key-value property and returns only items the token can read.

Acts onsearch result
Permission (capability)Read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Builds

Publish build information, read a build, list all builds, promote a build between repositories, and delete a build.5

Build information records the artifacts, dependencies, and environment of a build. Publishing needs deploy permission on the build.

Acts onbuild
Permission (capability)Deploy
VersionAvailable since the API’s base version
Webhook eventbuild-uploaded
Rate limitStandard limits apply

Reads a build run the token has read permission on.

Acts onbuild
Permission (capability)Read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Returns the builds the token can read.

Acts onbuild
Permission (capability)Read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Promotion can change a build's status and copy or move its artifacts, so it needs deploy on the build and on the target repository.

Acts onbuild
Permission (capability)Deploy
VersionAvailable since the API’s base version
Webhook eventbuild-promoted
Rate limitStandard limits apply

Deleting build runs needs delete permission on the build.

Acts onbuild
Permission (capability)Delete
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Storage

Read a storage summary across the instance and read the storage details for a folder or file.2

The instance-wide storage summary needs admin privileges.

Acts onstorage summary
Permission (capability)Admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Reads folder and file storage details for a path the token can read.

Acts onstorage summary
Permission (capability)Read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Security & access

Create and read users and groups, read and create permission targets, and create and revoke access tokens.7

Managing users is an administrative action. Newer JFrog Platform instances also expose user management through the Access API.

Acts onuser
Permission (capability)Admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Reading user details needs admin privileges.

Acts onuser
Permission (capability)Admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Groups bundle users so a permission target can grant access to many people at once. Managing groups needs admin privileges.

Acts ongroup
Permission (capability)Admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

A permission target binds repositories to users and groups with a set of permissions, such as read, deploy, annotate, delete, and manage. Reading them needs admin privileges.

Acts onpermission target
Permission (capability)Admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

The body names the repositories and the users or groups, each with permissions chosen from read, deploy or cache, annotate, delete or overwrite, manage Xray metadata, and manage. This is the model Artifactory uses to scope access.

Acts onpermission target
Permission (capability)Admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Access tokens are issued by the Access service, which carries its own path version. A token's scope sets the identity and permissions it acts with. Creating a token for another identity needs admin privileges.

Acts onaccess token
Permission (capability)Access admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Revoking a token immediately stops it working. A token can revoke itself, and an admin can revoke any token.

Acts onaccess token
Permission (capability)Access admin
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

System

Ping the instance, read its version, and check whether it is ready to serve requests.2

A lightweight health check that needs no permission.

Acts onsystem
Permission (capability)None required
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply

Reports the running version and license add-ons.

Acts onsystem
Permission (capability)Read
VersionAvailable since the API’s base version
Webhook eventNone
Rate limitStandard limits apply
No endpoints match those filters.
Webhooks

Webhook events.

Artifactory can notify an app or AI agent when something happens, such as an artifact being deployed or deleted, instead of the app repeatedly asking. A webhook is configured for the chosen events, and Artifactory posts each event to the registered URL.

EventWhat it signalsTriggered by
artifact deployedFires when an artifact is deployed to a watched repository./artifactory/{repoKey}/{itemPath}
artifact deletedFires when an artifact is deleted from a watched repository./artifactory/{repoKey}/{itemPath}
build uploadedFires when build information is published for a watched build./artifactory/api/build
build promotedFires when a watched build is promoted./artifactory/api/build/promote/{buildName}/{buildNumber}
No events match that search.
Rate limits & pagination

Rate limits, pagination & request size.

JFrog Cloud bills on consumption, the storage and data transfer an account uses, rather than a fixed request quota, and protects itself with throttling that returns a clear status when a heavy query, such as a search, is over the limit.

Request rate

Artifactory does not publish a fixed requests-per-hour quota the way some APIs do. JFrog Cloud bills on consumption, the combined storage and data transfer an account uses, measured in gigabytes, and relies on throttling and load balancing to protect the system rather than a declared per-second cap. The one clearly documented throttle is on search: on JFrog Cloud an Artifactory Query Language query is run against a concurrency limit, and a query that cannot get a slot within the configured timeout, ten seconds by default, returns a 429. A self-hosted instance can also be configured to rate-limit AQL.

Pagination

Listing and search endpoints return results in pages, and large result sets are paged through with the offset and limit controls a given endpoint supports. An AQL query can set its own limit and offset in the query body, and folder and storage listings return child entries that an integration walks rather than fetching everything at once.

Request size

Deploys and downloads stream the file itself, so there is no small JSON payload cap on artifacts, and very large binaries are supported. Configuration and search bodies are JSON. A storage or search response that would be very large should be narrowed with a more specific query or paged.

Errors

Status codes & error handling.

The status codes an agent should handle, and what to do about each.

StatusCodeMeaningWhat to do
400Bad RequestThe request is malformed, such as an invalid configuration body or a search with missing parameters. The body holds an errors array, each entry with a status and a message.Read the message in the errors array, correct the request, and resend.
401UnauthorizedAuthentication is missing or the credentials are invalid or expired.Send a valid access token as a Bearer token in the Authorization header.
403ForbiddenThe token is valid but lacks the permission for this action, such as deploy or delete on the target repository, or admin for a configuration call.Grant the missing permission on the repository's permission target, or use a token with the needed privileges.
404Not FoundThe repository, artifact, build, or other resource does not exist, or the token cannot see it.Confirm the path and repository key, and that the token has read access to the resource.
409ConflictThe request conflicts with the current state, such as deploying over an existing artifact when overwrite is not permitted.Resolve the conflict, for example by granting overwrite or using a new path, then retry.
429Too Many RequestsA throttling limit was hit. On JFrog Cloud a heavy search, such as an AQL query, is queued and returns 429 if it cannot get an execution slot within the timeout.Slow down, reduce the query's load, or retry after a short wait.
500Internal Server ErrorThe instance hit an unexpected error while handling the request.Retry after a short wait, and check the instance's logs or status if it persists.
Versioning & freshness

Version history.

The Artifactory REST API is not versioned by a dated string. Methods live at stable paths and change through Artifactory's continuous release train, while the newer Access API for tokens and permissions carries its own path version.

Version history

What changed, and when

Latest versionCurrent
CurrentCurrent version
Continuous release train, no dated API version

Artifactory ships on a continuous release train rather than versioning its REST API by a dated string. Methods stay at stable paths under /artifactory, and changes and deprecations are announced in the release notes ahead of removal. The token and permission work lives in the Access API, which carries its own path version such as /access/api/v1. Recent self-managed and SaaS releases sit in the 7.x line.

What changed
  • REST methods remain at stable, unversioned paths under /artifactory
  • Access tokens and permissions are managed through the separately versioned Access API
  • Deprecations are announced in the Artifactory release notes before removal
2026-06-01Requires migration
Hugging Face layout deprecated for the Machine Learning layout

From June 2026 the Hugging Face repository layout is deprecated. New local and remote Hugging Face repositories use the new Machine Learning repository layout by default, and older repositories must be migrated before the cutover.

What changed
  • New Hugging Face repositories default to the Machine Learning repository layout
  • Older Hugging Face repositories must be migrated before the deprecation date
2025-01-01Requires migration
API key creation disabled, access tokens the path forward

Following the API key deprecation that began at the end of 2024, the creation of new API keys is disabled from Artifactory version 7.98, and integrations are directed to access tokens. Support for Helm client versions below 3.0.0 was also removed in this window.

What changed
  • Creation of new API keys disabled from version 7.98
  • Integrations directed to access tokens instead of API keys
  • Support for Helm client versions below 3.0.0 removed

An integration calls stable paths and tracks deprecations through the release notes.

Artifactory release notes ↗
Questions

JFrog Artifactory API, answered.

How does an agent authenticate, and are API keys still supported?+
An access token sent as a Bearer token in the Authorization header is the recommended way. Access tokens are scoped to a user or group, can be refreshable, and can be given an expiry. API keys, the older per-user key in the X-JFrog-Art-Api header, are deprecated: JFrog disabled the creation of new API keys from version 7.98, so new integrations should use access tokens. Basic authentication with a username and password is also accepted.
How are permissions scoped?+
Through permission targets. A permission target binds a set of repositories to users and groups, and grants each a set of permissions: read, deploy or cache, annotate, delete or overwrite, manage Xray metadata, and manage. A token acts with the identity it is scoped to, so it can only do what that identity's permission targets allow on a given repository. Instance-wide actions, such as creating a repository or reading the storage summary, need admin privileges instead.
What is AQL?+
AQL is the Artifactory Query Language, a flexible search language for Artifactory. A query is posted to the AQL endpoint and can match items, builds, and properties with filters, sorting, and field selection, returning only what the calling token can read. The simpler name, coordinate, and property searches cover common cases without writing an AQL query.
What are the rate limits?+
Artifactory does not publish a fixed requests-per-hour quota. JFrog Cloud bills on consumption, the combined storage and data transfer used, and protects itself with throttling rather than a declared per-second cap. The clearly documented throttle is on search: on JFrog Cloud an AQL query runs against a concurrency limit and returns a 429 if it cannot get a slot within the timeout, ten seconds by default. A self-hosted instance can be configured to rate-limit AQL.
Does Artifactory have an official MCP server?+
Yes. JFrog publishes an official MCP server for the JFrog Platform, covering repository management, build tracking, and AQL search. It runs as a remotely hosted server for JFrog SaaS, with nothing to install, and the source can also be run locally from npm or the Docker image. The source is at github.com/jfrog/mcp-jfrog, and it authenticates with an access token.
How does an agent get told when something changes instead of polling?+
Through webhooks. A webhook is configured for chosen events, such as an artifact being deployed or deleted, or a build being uploaded or promoted, and Artifactory posts each event to a registered receiver URL. This avoids repeatedly polling the REST API for changes.
Why am I getting a 403 when the artifact exists?+
A 403 means the token is authenticated but lacks the permission for the action on that repository. Downloading needs read, uploading needs deploy, removing needs delete, and setting properties needs annotate, while configuration calls need admin. The fix is to grant the missing permission on the repository's permission target, or to use a token scoped to an identity that has it.
Related

More developer API guides for agents

What is Bollard AI?

Control what every AI agent can do in JFrog Artifactory.

Bollard AI sits between a team's AI agents and JFrog Artifactory. Grant each agent exactly the access it needs, read or write, repository by repository, and every call is checked and logged.

  • Set read, write, or full access per agent, never a shared access token.
  • Denied by default, so an agent reaches only the repositories explicitly allowed.
  • Every call recorded in plain English: who, what, where, and the decision.
JFrog Artifactory
Release Agent
Search artifacts (AQL) ActionOffReadFull use
Deploy to a release repository ResourceOffReadFull use
Delete artifacts ActionOffReadFull use
Manage permission targets ResourceOffReadFull use
Per-agent access, set in Bollard AI, not in JFrog Artifactory