JFrog Platform REST API

Unified API for JFrog Platform services and administration. Provides centralized endpoints for managing platform-wide configuration, system health, licenses, and cross-service operations.

Documentation

Specifications

Other Resources

OpenAPI Specification

jfrog-platform-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: JFrog Platform REST API
  description: >-
    Unified API for JFrog Platform services and administration. Provides
    centralized access management, project administration, and system
    configuration across all JFrog services.
  version: 2.x
  contact:
    name: JFrog
    url: https://jfrog.com
  license:
    name: Proprietary
    url: https://jfrog.com/terms-of-service/
  termsOfService: https://jfrog.com/terms-of-service/
externalDocs:
  description: JFrog Platform REST API Documentation
  url: https://jfrog.com/help/r/jfrog-rest-apis/introduction-to-the-jfrog-platform-rest-apis
servers:
  - url: https://{server}.jfrog.io
    description: JFrog Cloud
    variables:
      server:
        default: myserver
        description: Your JFrog server name
  - url: https://{host}
    description: Self-hosted JFrog instance
    variables:
      host:
        default: localhost:8082
        description: Your self-hosted JFrog server host
security:
  - bearerAuth: []
  - basicAuth: []
tags:
  - name: Access Tokens
    description: Token creation and management
  - name: Groups
    description: Group management
  - name: Permissions
    description: Permission management
  - name: Projects
    description: Project management
  - name: System
    description: Platform system health and configuration
  - name: Users
    description: Platform user management
  - name: Webhooks
    description: Webhook configuration
paths:
  /router/api/v1/system/ping:
    get:
      operationId: routerPing
      summary: JFrog Platform Router Ping
      description: Returns a simple health check from the JFrog Platform router.
      tags:
        - System
      responses:
        '200':
          description: Platform is accessible
          content:
            text/plain:
              schema:
                type: string
                example: OK
  /router/api/v1/system/health:
    get:
      operationId: getSystemHealth
      summary: JFrog Get System Health
      description: Returns health status of all JFrog services.
      tags:
        - System
      responses:
        '200':
          description: System health retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemHealth'
  /access/api/v2/tokens:
    get:
      operationId: listTokens
      summary: JFrog List Access Tokens
      description: Returns a list of all access tokens.
      tags:
        - Access Tokens
      responses:
        '200':
          description: Tokens list retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  tokens:
                    type: array
                    items:
                      $ref: '#/components/schemas/TokenInfo'
    post:
      operationId: createToken
      summary: JFrog Create Access Token
      description: Creates a new access token.
      tags:
        - Access Tokens
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTokenRequest'
      responses:
        '200':
          description: Token created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenResponse'
  /access/api/v2/tokens/{tokenId}:
    get:
      operationId: getToken
      summary: JFrog Get Token Details
      description: Returns details for a specific access token.
      tags:
        - Access Tokens
      parameters:
        - name: tokenId
          in: path
          required: true
          schema:
            type: string
          description: Token ID
      responses:
        '200':
          description: Token details retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenInfo'
    delete:
      operationId: revokeToken
      summary: JFrog Revoke Access Token
      description: Revokes an access token.
      tags:
        - Access Tokens
      parameters:
        - name: tokenId
          in: path
          required: true
          schema:
            type: string
          description: Token ID
      responses:
        '200':
          description: Token revoked
  /access/api/v2/users:
    get:
      operationId: listUsers
      summary: JFrog List Users
      description: Returns a list of all platform users.
      tags:
        - Users
      responses:
        '200':
          description: Users list retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  users:
                    type: array
                    items:
                      $ref: '#/components/schemas/PlatformUser'
    post:
      operationId: createUser
      summary: JFrog Create User
      description: Creates a new platform user.
      tags:
        - Users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUserRequest'
      responses:
        '201':
          description: User created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformUser'
  /access/api/v2/users/{username}:
    get:
      operationId: getUser
      summary: JFrog Get User
      description: Returns details for a specific user.
      tags:
        - Users
      parameters:
        - name: username
          in: path
          required: true
          schema:
            type: string
          description: Username
      responses:
        '200':
          description: User details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformUser'
    patch:
      operationId: updateUser
      summary: JFrog Update User
      description: Updates user details.
      tags:
        - Users
      parameters:
        - name: username
          in: path
          required: true
          schema:
            type: string
          description: Username
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUserRequest'
      responses:
        '200':
          description: User updated
    delete:
      operationId: deleteUser
      summary: JFrog Delete User
      description: Deletes a user.
      tags:
        - Users
      parameters:
        - name: username
          in: path
          required: true
          schema:
            type: string
          description: Username
      responses:
        '204':
          description: User deleted
  /access/api/v2/groups:
    get:
      operationId: listGroups
      summary: JFrog List Groups
      description: Returns a list of all platform groups.
      tags:
        - Groups
      responses:
        '200':
          description: Groups list
          content:
            application/json:
              schema:
                type: object
                properties:
                  groups:
                    type: array
                    items:
                      $ref: '#/components/schemas/PlatformGroup'
    post:
      operationId: createGroup
      summary: JFrog Create Group
      description: Creates a new platform group.
      tags:
        - Groups
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformGroup'
      responses:
        '201':
          description: Group created
  /access/api/v2/groups/{groupName}:
    get:
      operationId: getGroup
      summary: JFrog Get Group
      description: Returns details for a specific group.
      tags:
        - Groups
      parameters:
        - name: groupName
          in: path
          required: true
          schema:
            type: string
          description: Group name
      responses:
        '200':
          description: Group details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformGroup'
    patch:
      operationId: updateGroup
      summary: JFrog Update Group
      description: Updates group details.
      tags:
        - Groups
      parameters:
        - name: groupName
          in: path
          required: true
          schema:
            type: string
          description: Group name
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformGroup'
      responses:
        '200':
          description: Group updated
    delete:
      operationId: deleteGroup
      summary: JFrog Delete Group
      description: Deletes a group.
      tags:
        - Groups
      parameters:
        - name: groupName
          in: path
          required: true
          schema:
            type: string
          description: Group name
      responses:
        '204':
          description: Group deleted
  /access/api/v1/projects:
    get:
      operationId: listProjects
      summary: JFrog List Projects
      description: Returns a list of all projects.
      tags:
        - Projects
      responses:
        '200':
          description: Projects list
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
    post:
      operationId: createProject
      summary: JFrog Create Project
      description: Creates a new project.
      tags:
        - Projects
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectRequest'
      responses:
        '201':
          description: Project created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
  /access/api/v1/projects/{projectKey}:
    get:
      operationId: getProject
      summary: JFrog Get Project
      description: Returns details for a specific project.
      tags:
        - Projects
      parameters:
        - name: projectKey
          in: path
          required: true
          schema:
            type: string
          description: Project key
      responses:
        '200':
          description: Project details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
    put:
      operationId: updateProject
      summary: JFrog Update Project
      description: Updates project configuration.
      tags:
        - Projects
      parameters:
        - name: projectKey
          in: path
          required: true
          schema:
            type: string
          description: Project key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectRequest'
      responses:
        '200':
          description: Project updated
    delete:
      operationId: deleteProject
      summary: JFrog Delete Project
      description: Deletes a project.
      tags:
        - Projects
      parameters:
        - name: projectKey
          in: path
          required: true
          schema:
            type: string
          description: Project key
      responses:
        '204':
          description: Project deleted
  /access/api/v1/projects/{projectKey}/users/{username}:
    put:
      operationId: addUserToProject
      summary: JFrog Add User to Project
      description: Adds a user to a project with specified roles.
      tags:
        - Projects
      parameters:
        - name: projectKey
          in: path
          required: true
          schema:
            type: string
          description: Project key
        - name: username
          in: path
          required: true
          schema:
            type: string
          description: Username
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                roles:
                  type: array
                  items:
                    type: string
      responses:
        '200':
          description: User added to project
    delete:
      operationId: removeUserFromProject
      summary: JFrog Remove User from Project
      description: Removes a user from a project.
      tags:
        - Projects
      parameters:
        - name: projectKey
          in: path
          required: true
          schema:
            type: string
          description: Project key
        - name: username
          in: path
          required: true
          schema:
            type: string
          description: Username
      responses:
        '204':
          description: User removed from project
  /access/api/v2/permissions:
    get:
      operationId: listPermissions
      summary: JFrog List Permissions
      description: Returns a list of all permission configurations.
      tags:
        - Permissions
      responses:
        '200':
          description: Permissions list
          content:
            application/json:
              schema:
                type: object
                properties:
                  permissions:
                    type: array
                    items:
                      $ref: '#/components/schemas/Permission'
    post:
      operationId: createPermission
      summary: JFrog Create Permission
      description: Creates a new permission configuration.
      tags:
        - Permissions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Permission'
      responses:
        '201':
          description: Permission created
  /access/api/v2/permissions/{permissionName}:
    get:
      operationId: getPermission
      summary: JFrog Get Permission
      description: Returns details for a specific permission.
      tags:
        - Permissions
      parameters:
        - name: permissionName
          in: path
          required: true
          schema:
            type: string
          description: Permission name
      responses:
        '200':
          description: Permission details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Permission'
    put:
      operationId: updatePermission
      summary: JFrog Update Permission
      description: Updates a permission configuration.
      tags:
        - Permissions
      parameters:
        - name: permissionName
          in: path
          required: true
          schema:
            type: string
          description: Permission name
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Permission'
      responses:
        '200':
          description: Permission updated
    delete:
      operationId: deletePermission
      summary: JFrog Delete Permission
      description: Deletes a permission configuration.
      tags:
        - Permissions
      parameters:
        - name: permissionName
          in: path
          required: true
          schema:
            type: string
          description: Permission name
      responses:
        '204':
          description: Permission deleted
  /event/api/v1/subscriptions:
    get:
      operationId: listWebhooks
      summary: JFrog List Webhooks
      description: Returns a list of all configured webhooks.
      tags:
        - Webhooks
      responses:
        '200':
          description: Webhooks list
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Webhook'
    post:
      operationId: createWebhook
      summary: JFrog Create Webhook
      description: Creates a new webhook subscription.
      tags:
        - Webhooks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookRequest'
      responses:
        '201':
          description: Webhook created
  /event/api/v1/subscriptions/{webhookKey}:
    get:
      operationId: getWebhook
      summary: JFrog Get Webhook
      description: Returns details for a specific webhook.
      tags:
        - Webhooks
      parameters:
        - name: webhookKey
          in: path
          required: true
          schema:
            type: string
          description: Webhook key
      responses:
        '200':
          description: Webhook details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
    put:
      operationId: updateWebhook
      summary: JFrog Update Webhook
      description: Updates a webhook configuration.
      tags:
        - Webhooks
      parameters:
        - name: webhookKey
          in: path
          required: true
          schema:
            type: string
          description: Webhook key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookRequest'
      responses:
        '200':
          description: Webhook updated
    delete:
      operationId: deleteWebhook
      summary: JFrog Delete Webhook
      description: Deletes a webhook subscription.
      tags:
        - Webhooks
      parameters:
        - name: webhookKey
          in: path
          required: true
          schema:
            type: string
          description: Webhook key
      responses:
        '204':
          description: Webhook deleted
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Access token authentication
    basicAuth:
      type: http
      scheme: basic
      description: Basic username/password authentication
  schemas:
    SystemHealth:
      type: object
      properties:
        router:
          type: object
          properties:
            node_id:
              type: string
            state:
              type: string
            message:
              type: string
        services:
          type: array
          items:
            type: object
            properties:
              service_id:
                type: string
              node_id:
                type: string
              state:
                type: string
                enum: [HEALTHY, DEGRADED, UNHEALTHY]
              message:
                type: string
    TokenInfo:
      type: object
      properties:
        token_id:
          type: string
        subject:
          type: string
        expiry:
          type: integer
        issued_at:
          type: integer
        issuer:
          type: string
        description:
          type: string
        refreshable:
          type: boolean
        scope:
          type: string
    CreateTokenRequest:
      type: object
      properties:
        subject:
          type: string
        scope:
          type: string
        expires_in:
          type: integer
          description: Token expiry in seconds (0 for non-expiring)
        refreshable:
          type: boolean
        description:
          type: string
        audience:
          type: string
        include_reference_token:
          type: boolean
      required:
        - scope
    TokenResponse:
      type: object
      properties:
        token_id:
          type: string
        access_token:
          type: string
        refresh_token:
          type: string
        expires_in:
          type: integer
        scope:
          type: string
        token_type:
          type: string
          example: Bearer
        reference_token:
          type: string
    PlatformUser:
      type: object
      properties:
        username:
          type: string
        email:
          type: string
          format: email
        admin:
          type: boolean
        profile_updatable:
          type: boolean
        disable_ui_access:
          type: boolean
        internal_password_disabled:
          type: boolean
        status:
          type: string
          enum: [enabled, disabled]
        groups:
          type: array
          items:
            type: string
    CreateUserRequest:
      type: object
      properties:
        username:
          type: string
        email:
          type: string
          format: email
        password:
          type: string
        admin:
          type: boolean
        profile_updatable:
          type: boolean
        groups:
          type: array
          items:
            type: string
      required:
        - username
        - email
        - password
    UpdateUserRequest:
      type: object
      properties:
        email:
          type: string
          format: email
        password:
          type: string
        admin:
          type: boolean
        profile_updatable:
          type: boolean
        groups:
          type: array
          items:
            type: string
    PlatformGroup:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        auto_join:
          type: boolean
        admin_privileges:
          type: boolean
        realm:
          type: string
        external_id:
          type: string
        members:
          type: array
          items:
            type: string
      required:
        - name
    Project:
      type: object
      properties:
        project_key:
          type: string
        display_name:
          type: string
        description:
          type: string
        admin_privileges:
          type: object
          properties:
            manage_members:
              type: boolean
            manage_resources:
              type: boolean
            manage_security_assets:
              type: boolean
            index_resources:
              type: boolean
            allow_ignore_rules:
              type: boolean
        max_storage_in_gibibytes:
          type: integer
        soft_limit:
          type: boolean
        storage_quota_bytes:
          type: integer
        storage_quota_email_notification:
          type: boolean
    ProjectRequest:
      type: object
      properties:
        project_key:
          type: string
          maxLength: 32
        display_name:
          type: string
        description:
          type: string
        admin_privileges:
          type: object
          properties:
            manage_members:
              type: boolean
            manage_resources:
              type: boolean
            manage_security_assets:
              type: boolean
            index_resources:
              type: boolean
            allow_ignore_rules:
              type: boolean
        max_storage_in_gibibytes:
          type: integer
      required:
        - project_key
        - display_name
    Permission:
      type: object
      properties:
        name:
          type: string
        resources:
          type: object
          properties:
            repository:
              type: object
              additionalProperties:
                type: object
                properties:
                  include_patterns:
                    type: array
                    items:
                      type: string
                  exclude_patterns:
                    type: array
                    items:
                      type: string
                  actions:
                    type: object
                    properties:
                      users:
                        type: object
                        additionalProperties:
                          type: array
                          items:
                            type: string
                      groups:
                        type: object
                        additionalProperties:
                          type: array
                          items:
                            type: string
            build:
              type: object
              additionalProperties:
                type: object
      required:
        - name
    Webhook:
      type: object
      properties:
        key:
          type: string
        description:
          type: string
        enabled:
          type: boolean
        url:
          type: string
          format: uri
        secret:
          type: string
        events:
          type: array
          items:
            type: string
        criteria:
          type: object
          additionalProperties: true
    WebhookRequest:
      type: object
      properties:
        key:
          type: string
        description:
          type: string
        enabled:
          type: boolean
        url:
          type: string
          format: uri
        secret:
          type: string
        events:
          type: array
          items:
            type: string
            enum:
              - deployed
              - deleted
              - moved
              - copied
              - cached
              - property_added
              - property_deleted
              - docker_pushed
              - docker_deleted
              - build_published
              - build_promotion
              - build_deleted
              - release_bundle_created
              - release_bundle_signed
              - release_bundle_deleted
        criteria:
          type: object
          properties:
            anyLocal:
              type: boolean
            anyRemote:
              type: boolean
            anyFederated:
              type: boolean
            repoKeys:
              type: array
              items:
                type: string
            includePatterns:
              type: array
              items:
                type: string
            excludePatterns:
              type: array
              items:
                type: string
      required:
        - key
        - url
        - events