JFrog Artifactory Security API

Users, groups, permissions, and tokens

Operations 16

GET /api/security/users JFrog Artifactory List Users #
GET /api/security/users/{username} JFrog Artifactory Get User Details #
PUT /api/security/users/{username} JFrog Artifactory Create or Replace User #
DELETE /api/security/users/{username} JFrog Artifactory Delete User #
GET /api/security/groups JFrog Artifactory List Groups #
GET /api/security/groups/{groupName} JFrog Artifactory Get Group Details #
PUT /api/security/groups/{groupName} JFrog Artifactory Create or Replace Group #
DELETE /api/security/groups/{groupName} JFrog Artifactory Delete Group #
GET /api/security/permissions JFrog Artifactory List Permission Targets #
GET /api/security/permissions/{permissionName} JFrog Artifactory Get Permission Target #
PUT /api/security/permissions/{permissionName} JFrog Artifactory Create or Replace Permission Target #
DELETE /api/security/permissions/{permissionName} JFrog Artifactory Delete Permission Target #
POST /api/security/token JFrog Artifactory Create Access Token #
GET /api/security/apiKey JFrog Artifactory Get API Key #
PUT /api/security/apiKey JFrog Artifactory Create API Key #
DELETE /api/security/apiKey JFrog Artifactory Revoke API Key #

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-security-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-security-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: JFrog Artifactory Query Language (AQL) AQL Search Security 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: Security
  description: Users, groups, permissions, and tokens
paths:
  /api/security/users:
    get:
      operationId: listUsers
      summary: JFrog Artifactory List Users
      description: Returns a list of all users in the system.
      tags:
      - Security
      responses:
        '200':
          description: List of users
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserListItem'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /api/security/users/{username}:
    get:
      operationId: getUser
      summary: JFrog Artifactory Get User Details
      description: Returns the details for a specific user.
      tags:
      - Security
      parameters:
      - name: username
        in: path
        required: true
        description: The username
        schema:
          type: string
      responses:
        '200':
          description: User details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: createOrReplaceUser
      summary: JFrog Artifactory Create or Replace User
      description: Creates a new user or replaces an existing one.
      tags:
      - Security
      parameters:
      - name: username
        in: path
        required: true
        description: The username
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
      responses:
        '201':
          description: User created successfully
        '200':
          description: User replaced successfully
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: deleteUser
      summary: JFrog Artifactory Delete User
      description: Deletes an existing user.
      tags:
      - Security
      parameters:
      - name: username
        in: path
        required: true
        description: The username
        schema:
          type: string
      responses:
        '200':
          description: User deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/security/groups:
    get:
      operationId: listGroups
      summary: JFrog Artifactory List Groups
      description: Returns a list of all groups in the system.
      tags:
      - Security
      responses:
        '200':
          description: List of groups
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/GroupListItem'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/security/groups/{groupName}:
    get:
      operationId: getGroup
      summary: JFrog Artifactory Get Group Details
      description: Returns the details for a specific group.
      tags:
      - Security
      parameters:
      - name: groupName
        in: path
        required: true
        description: The group name
        schema:
          type: string
      responses:
        '200':
          description: Group details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: createOrReplaceGroup
      summary: JFrog Artifactory Create or Replace Group
      description: Creates a new group or replaces an existing one.
      tags:
      - Security
      parameters:
      - name: groupName
        in: path
        required: true
        description: The group name
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Group'
      responses:
        '201':
          description: Group created successfully
        '200':
          description: Group replaced successfully
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: deleteGroup
      summary: JFrog Artifactory Delete Group
      description: Deletes an existing group.
      tags:
      - Security
      parameters:
      - name: groupName
        in: path
        required: true
        description: The group name
        schema:
          type: string
      responses:
        '200':
          description: Group deleted successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/security/permissions:
    get:
      operationId: listPermissionTargets
      summary: JFrog Artifactory List Permission Targets
      description: Returns a list of all permission targets in the system.
      tags:
      - Security
      responses:
        '200':
          description: List of permission targets
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PermissionTargetListItem'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/security/permissions/{permissionName}:
    get:
      operationId: getPermissionTarget
      summary: JFrog Artifactory Get Permission Target
      description: Returns the details for a specific permission target.
      tags:
      - Security
      parameters:
      - name: permissionName
        in: path
        required: true
        description: The permission target name
        schema:
          type: string
      responses:
        '200':
          description: Permission target details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PermissionTarget'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: createOrReplacePermissionTarget
      summary: JFrog Artifactory Create or Replace Permission Target
      description: Creates a new permission target or replaces an existing one.
      tags:
      - Security
      parameters:
      - name: permissionName
        in: path
        required: true
        description: The permission target name
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PermissionTarget'
      responses:
        '201':
          description: Permission target created
        '200':
          description: Permission target replaced
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: deletePermissionTarget
      summary: JFrog Artifactory Delete Permission Target
      description: Deletes an existing permission target.
      tags:
      - Security
      parameters:
      - name: permissionName
        in: path
        required: true
        description: The permission target name
        schema:
          type: string
      responses:
        '200':
          description: Permission target deleted
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/security/token:
    post:
      operationId: createAccessToken
      summary: JFrog Artifactory Create Access Token
      description: Creates an access token for authenticating with Artifactory.
      tags:
      - Security
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                username:
                  type: string
                  description: The username for which the token is created
                scope:
                  type: string
                  description: 'The scope of the token. Format: member-of-groups:group1,group2'
                expires_in:
                  type: integer
                  description: Token expiration in seconds. 0 means no expiration.
                refreshable:
                  type: boolean
                  description: Whether the token is refreshable
                audience:
                  type: string
                  description: The audience for the token
      responses:
        '200':
          description: Access token created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessToken'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/security/apiKey:
    get:
      operationId: getApiKey
      summary: JFrog Artifactory Get API Key
      description: Returns the API key for the currently authenticated user.
      tags:
      - Security
      responses:
        '200':
          description: API key information
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiKey:
                    type: string
                    description: The API key value
        '401':
          $ref: '#/components/responses/Unauthorized'
    put:
      operationId: createApiKey
      summary: JFrog Artifactory Create API Key
      description: Creates a new API key for the currently authenticated user.
      tags:
      - Security
      responses:
        '201':
          description: API key created
          content:
            application/json:
              schema:
                type: object
                properties:
                  apiKey:
                    type: string
                    description: The newly created API key
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: revokeApiKey
      summary: JFrog Artifactory Revoke API Key
      description: Revokes the API key for the currently authenticated user.
      tags:
      - Security
      responses:
        '200':
          description: API key revoked
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    UserListItem:
      type: object
      properties:
        name:
          type: string
          description: Username
        uri:
          type: string
          format: uri
          description: URI to user details
        realm:
          type: string
          description: Authentication realm
        status:
          type: string
          description: User status
          enum:
          - enabled
          - disabled
    PermissionTargetListItem:
      type: object
      properties:
        name:
          type: string
          description: Permission target name
        uri:
          type: string
          format: uri
          description: URI to permission target details
    PermissionTarget:
      type: object
      properties:
        name:
          type: string
          description: Permission target name
        repo:
          type: object
          properties:
            repositories:
              type: array
              items:
                type: string
              description: Repository keys
            actions:
              type: object
              properties:
                users:
                  type: object
                  additionalProperties:
                    type: array
                    items:
                      type: string
                      enum:
                      - read
                      - write
                      - annotate
                      - delete
                      - manage
                      - managedXrayMeta
                      - distribute
                  description: User permissions mapping
                groups:
                  type: object
                  additionalProperties:
                    type: array
                    items:
                      type: string
                      enum:
                      - read
                      - write
                      - annotate
                      - delete
                      - manage
                      - managedXrayMeta
                      - distribute
                  description: Group permissions mapping
            includePatterns:
              type: array
              items:
                type: string
              description: Include patterns
            excludePatterns:
              type: array
              items:
                type: string
              description: Exclude patterns
        build:
          type: object
          properties:
            repositories:
              type: array
              items:
                type: string
              description: Build repository keys
            actions:
              type: object
              properties:
                users:
                  type: object
                  additionalProperties:
                    type: array
                    items:
                      type: string
                groups:
                  type: object
                  additionalProperties:
                    type: array
                    items:
                      type: string
            includePatterns:
              type: array
              items:
                type: string
            excludePatterns:
              type: array
              items:
                type: string
    GroupListItem:
      type: object
      properties:
        name:
          type: string
          description: Group name
        uri:
          type: string
          format: uri
          description: URI to group details
    User:
      type: object
      properties:
        name:
          type: string
          description: Username
        email:
          type: string
          format: email
          description: Email address
        password:
          type: string
          description: Password (write-only, never returned)
        admin:
          type: boolean
          description: Whether the user is an admin
        profileUpdatable:
          type: boolean
          description: Whether the user can update their profile
        disableUIAccess:
          type: boolean
          description: Whether UI access is disabled
        internalPasswordDisabled:
          type: boolean
          description: Whether internal password is disabled
        groups:
          type: array
          items:
            type: string
          description: Groups the user belongs to
        lastLoggedIn:
          type: string
          format: date-time
          description: Last login timestamp
        realm:
          type: string
          description: Authentication realm
        status:
          type: string
          description: User status
          enum:
          - enabled
          - disabled
    Group:
      type: object
      properties:
        name:
          type: string
          description: Group name
        description:
          type: string
          description: Group description
        autoJoin:
          type: boolean
          description: Whether new users automatically join this group
        realm:
          type: string
          description: Authentication realm
        realmAttributes:
          type: string
          description: Realm attributes
        adminPrivileges:
          type: boolean
          description: Whether the group has admin privileges
        external:
          type: boolean
          description: Whether this is an external group
        usersNames:
          type: array
          items:
            type: string
          description: List of users in this group
    ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              status:
                type: integer
                description: HTTP status code
              message:
                type: string
                description: Error message
    AccessToken:
      type: object
      properties:
        access_token:
          type: string
          description: The access token string
        expires_in:
          type: integer
          description: Token expiration time in seconds
        scope:
          type: string
          description: Scope of the token
        token_type:
          type: string
          description: Token type (always "Bearer")
          example: Bearer
        refresh_token:
          type: string
          description: Refresh token (if refreshable was true)
  responses:
    Unauthorized:
      description: Unauthorized - authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad request - invalid input
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: Forbidden - insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  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