Jira Projects API

Manage Jira projects including metadata, roles, and components.

Documentation

Specifications

Code Examples

Other Resources

OpenAPI Specification

jira-projects-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Jira Cloud Platform REST Issue Comments Projects API
  description: The Jira Cloud platform REST API v3 for building apps and integrations with Atlassian Jira. This specification covers core resources including issues, projects, and search (JQL). All responses use Atlassian Document Format (ADF) for rich text fields. Authentication is via OAuth 2.0 (3LO), API tokens with basic auth, or Atlassian Connect JWT.
  version: '3'
  license:
    name: Atlassian Developer Terms
    url: https://developer.atlassian.com/platform/marketplace/atlassian-developer-terms/
  termsOfService: https://www.atlassian.com/legal/cloud-terms-of-service
  contact:
    name: Atlassian Developer Support
    url: https://developer.atlassian.com/support
    email: ecosystem@atlassian.com
  x-atlassian-api-version: '3'
servers:
- url: https://{domain}.atlassian.net/rest/api/3
  description: Jira Cloud instance
  variables:
    domain:
      description: Your Jira Cloud site subdomain (e.g., your-company).
      default: your-domain
security:
- basicAuth: []
- oauth2: []
- bearerAuth: []
tags:
- name: Projects
  description: Manage Jira projects including metadata, roles, and components.
  externalDocs:
    description: Jira Projects REST API documentation
    url: https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-projects/
paths:
  /project:
    get:
      summary: Jira Get All Projects
      description: Returns all projects visible to the user. Deprecated, use Get projects paginated that supports search and pagination.
      operationId: getAllProjects
      tags:
      - Projects
      externalDocs:
        description: API method documentation
        url: https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-projects/#api-rest-api-3-project-get
      parameters:
      - name: expand
        in: query
        description: 'Use expand to include additional information in the response. Accepted values: description, issueTypes, lead, projectKeys, url.'
        required: false
        schema:
          type: string
        example: example_value
      - name: recent
        in: query
        description: Returns projects the user has accessed in the last given number of projects, up to 20.
        required: false
        schema:
          type: integer
          format: int32
        example: 10
      - name: properties
        in: query
        description: A list of project properties to return for each project.
        required: false
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
        example: []
      responses:
        '200':
          description: Projects returned successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
              examples:
                Getallprojects200Example:
                  summary: Default getAllProjects 200 response
                  x-microcks-default: true
                  value:
                  - self: https://www.example.com
                    id: abc123
                    key: example_value
                    name: Example Title
                    description: A sample description.
                    lead:
                      self: https://www.example.com
                      accountId: '500123'
                      emailAddress: user@example.com
                      displayName: example_value
                      active: true
                      timeZone: example_value
                      accountType: atlassian
                    components:
                    - {}
                    issueTypes:
                    - {}
                    url: https://www.example.com
                    assigneeType: PROJECT_LEAD
                    versions:
                    - {}
                    roles: example_value
                    avatarUrls:
                      16x16: https://www.example.com
                      24x24: https://www.example.com
                      32x32: https://www.example.com
                      48x48: https://www.example.com
                    projectCategory:
                      self: https://www.example.com
                      id: abc123
                      name: Example Title
                      description: A sample description.
                    projectTypeKey: software
                    simplified: true
                    style: classic
                    archived: true
                    deleted: true
                    insight:
                      totalIssueCount: 10
                      lastIssueUpdateTime: '2026-01-15T10:30:00Z'
        '401':
          description: Authentication credentials are missing or invalid.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /project/search:
    get:
      summary: Jira Get Projects Paginated
      description: Returns a paginated list of projects visible to the user. This operation can be filtered by project type, category, and action.
      operationId: searchProjects
      tags:
      - Projects
      externalDocs:
        description: API method documentation
        url: https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-projects/#api-rest-api-3-project-search-get
      parameters:
      - name: startAt
        in: query
        description: The index of the first item to return in a page of results (page offset).
        required: false
        schema:
          type: integer
          format: int64
          default: 0
        example: 10
      - name: maxResults
        in: query
        description: The maximum number of items to return per page.
        required: false
        schema:
          type: integer
          format: int32
          default: 50
        example: 10
      - name: orderBy
        in: query
        description: 'Order the results by a field. Accepted values: category, key, name, owner, issueCount, lastIssueUpdatedTime, archivedDate. Prefix with + or - for ascending/descending.'
        required: false
        schema:
          type: string
          default: key
        example: example_value
      - name: query
        in: query
        description: Filter results using a literal string match on project name or key.
        required: false
        schema:
          type: string
        example: example_value
      - name: typeKey
        in: query
        description: 'The type key of the project. Accepted values: business, service_desk, software.'
        required: false
        schema:
          type: string
        example: example_value
      - name: categoryId
        in: query
        description: The ID of the project category to filter by.
        required: false
        schema:
          type: integer
          format: int64
        example: '500123'
      - name: action
        in: query
        description: 'Filter results by what the user has permission to do. Accepted values: view, browse, edit, create.'
        required: false
        schema:
          type: string
          default: view
        example: example_value
      - name: expand
        in: query
        description: 'Use expand to include additional information in the response. Accepted values: description, projectKeys, lead, issueTypes, url, insight.'
        required: false
        schema:
          type: string
        example: example_value
      - name: status
        in: query
        description: 'The status of the project. Accepted values: live, archived, deleted.'
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - live
            - archived
            - deleted
        style: form
        explode: true
        example: []
      responses:
        '200':
          description: Paginated project list returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageBeanProject'
              examples:
                Searchprojects200Example:
                  summary: Default searchProjects 200 response
                  x-microcks-default: true
                  value:
                    self: https://www.example.com
                    nextPage: https://www.example.com
                    maxResults: 10
                    startAt: 10
                    total: 10
                    isLast: true
                    values:
                    - self: https://www.example.com
                      id: abc123
                      key: example_value
                      name: Example Title
                      description: A sample description.
                      components: {}
                      issueTypes: {}
                      url: https://www.example.com
                      assigneeType: PROJECT_LEAD
                      versions: {}
                      roles: example_value
                      projectTypeKey: software
                      simplified: true
                      style: classic
                      archived: true
                      deleted: true
                      insight: {}
        '400':
          description: The request is invalid.
        '401':
          description: Authentication credentials are missing or invalid.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /project/{projectIdOrKey}:
    get:
      summary: Jira Get Project
      description: Returns the project details for a project. The returned project includes additional information such as issue types, components, versions, and roles.
      operationId: getProject
      tags:
      - Projects
      externalDocs:
        description: API method documentation
        url: https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-projects/#api-rest-api-3-project-projectidorkey-get
      parameters:
      - $ref: '#/components/parameters/projectIdOrKey'
      - name: expand
        in: query
        description: 'Use expand to include additional information in the response. Accepted values: description, issueTypes, lead, projectKeys, url, insight.'
        required: false
        schema:
          type: string
        example: example_value
      - name: properties
        in: query
        description: A list of project properties to return for the project.
        required: false
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
        example: []
      responses:
        '200':
          description: Project details returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
              examples:
                Getproject200Example:
                  summary: Default getProject 200 response
                  x-microcks-default: true
                  value:
                    self: https://www.example.com
                    id: abc123
                    key: example_value
                    name: Example Title
                    description: A sample description.
                    lead:
                      self: https://www.example.com
                      accountId: '500123'
                      emailAddress: user@example.com
                      displayName: example_value
                      active: true
                      timeZone: example_value
                      accountType: atlassian
                    components:
                    - self: https://www.example.com
                      id: abc123
                      name: Example Title
                      description: A sample description.
                      assigneeType: PROJECT_DEFAULT
                      project: example_value
                      projectId: '500123'
                    issueTypes:
                    - self: https://www.example.com
                      id: abc123
                      description: A sample description.
                      iconUrl: https://www.example.com
                      name: Example Title
                      subtask: true
                      avatarId: '500123'
                      hierarchyLevel: 10
                    url: https://www.example.com
                    assigneeType: PROJECT_LEAD
                    versions:
                    - self: https://www.example.com
                      id: abc123
                      name: Example Title
                      description: A sample description.
                      archived: true
                      released: true
                      releaseDate: '2026-01-15'
                      startDate: '2026-01-15'
                      overdue: true
                      projectId: '500123'
                    roles: example_value
                    avatarUrls:
                      16x16: https://www.example.com
                      24x24: https://www.example.com
                      32x32: https://www.example.com
                      48x48: https://www.example.com
                    projectCategory:
                      self: https://www.example.com
                      id: abc123
                      name: Example Title
                      description: A sample description.
                    projectTypeKey: software
                    simplified: true
                    style: classic
                    archived: true
                    deleted: true
                    insight:
                      totalIssueCount: 10
                      lastIssueUpdateTime: '2026-01-15T10:30:00Z'
        '401':
          description: Authentication credentials are missing or invalid.
        '404':
          description: The project was not found or the user does not have permission to view it.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /project/{projectIdOrKey}/statuses:
    get:
      summary: Jira Get All Statuses for Project
      description: Returns the valid statuses for a project. The statuses are grouped by issue type, listing the allowed statuses for each issue type in the project.
      operationId: getAllStatuses
      tags:
      - Projects
      externalDocs:
        description: API method documentation
        url: https://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-projects/#api-rest-api-3-project-projectidorkey-statuses-get
      parameters:
      - $ref: '#/components/parameters/projectIdOrKey'
      responses:
        '200':
          description: Statuses returned successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IssueTypeWithStatus'
              examples:
                Getallstatuses200Example:
                  summary: Default getAllStatuses 200 response
                  x-microcks-default: true
                  value:
                  - self: https://www.example.com
                    id: abc123
                    name: Example Title
                    subtask: true
                    statuses:
                    - {}
        '401':
          description: Authentication credentials are missing or invalid.
        '404':
          description: The project was not found or the user does not have permission to view it.
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    Version:
      type: object
      description: A project version.
      properties:
        self:
          type: string
          format: uri
          example: https://www.example.com
        id:
          type: string
          example: abc123
        name:
          type: string
          example: Example Title
        description:
          type: string
          example: A sample description.
        archived:
          type: boolean
          example: true
        released:
          type: boolean
          example: true
        releaseDate:
          type: string
          format: date
          example: '2026-01-15'
        startDate:
          type: string
          format: date
          example: '2026-01-15'
        overdue:
          type: boolean
          example: true
        projectId:
          type: integer
          format: int64
          example: '500123'
    IssueTypeDetails:
      type: object
      description: Details of an issue type.
      properties:
        self:
          type: string
          format: uri
          description: The URL of the issue type in the REST API.
          example: https://www.example.com
        id:
          type: string
          description: The ID of the issue type.
          example: abc123
        description:
          type: string
          description: The description of the issue type.
          example: A sample description.
        iconUrl:
          type: string
          format: uri
          description: The URL of the issue type icon.
          example: https://www.example.com
        name:
          type: string
          description: The name of the issue type (e.g., Bug, Story, Task, Epic).
          example: Example Title
        subtask:
          type: boolean
          description: Whether this issue type is used to create sub-tasks.
          example: true
        avatarId:
          type: integer
          format: int64
          description: The ID of the avatar for the issue type.
          example: '500123'
        hierarchyLevel:
          type: integer
          format: int32
          description: The hierarchy level of the issue type.
          example: 10
        scope:
          $ref: '#/components/schemas/Scope'
    PageBeanProject:
      type: object
      description: A paginated list of projects.
      properties:
        self:
          type: string
          format: uri
          example: https://www.example.com
        nextPage:
          type: string
          format: uri
          example: https://www.example.com
        maxResults:
          type: integer
          format: int32
          example: 10
        startAt:
          type: integer
          format: int64
          example: 10
        total:
          type: integer
          format: int64
          example: 10
        isLast:
          type: boolean
          example: true
        values:
          type: array
          items:
            $ref: '#/components/schemas/Project'
          example: []
    IssueTypeWithStatus:
      type: object
      description: Issue type with its valid statuses.
      properties:
        self:
          type: string
          format: uri
          example: https://www.example.com
        id:
          type: string
          example: abc123
        name:
          type: string
          example: Example Title
        subtask:
          type: boolean
          example: true
        statuses:
          type: array
          items:
            $ref: '#/components/schemas/StatusDetails'
          example: []
    ProjectCategory:
      type: object
      description: A project category.
      properties:
        self:
          type: string
          format: uri
          example: https://www.example.com
        id:
          type: string
          example: abc123
        name:
          type: string
          example: Example Title
        description:
          type: string
          example: A sample description.
    StatusCategory:
      type: object
      description: A status category in Jira.
      properties:
        self:
          type: string
          format: uri
          example: https://www.example.com
        id:
          type: integer
          format: int64
          example: abc123
        key:
          type: string
          description: The key of the status category (e.g., new, indeterminate, done).
          example: example_value
        colorName:
          type: string
          description: The color name for the status category.
          example: example_value
        name:
          type: string
          description: The name of the status category.
          example: Example Title
    UserDetails:
      type: object
      description: A Jira user.
      properties:
        self:
          type: string
          format: uri
          description: The URL of the user in the REST API.
          example: https://www.example.com
        accountId:
          type: string
          description: The account ID of the user, which uniquely identifies the user across all Atlassian products.
          maxLength: 128
          example: '500123'
        emailAddress:
          type: string
          format: email
          description: The email address of the user (may not be available depending on privacy settings).
          example: user@example.com
        displayName:
          type: string
          description: The display name of the user.
          example: example_value
        active:
          type: boolean
          description: Whether the user account is active.
          example: true
        timeZone:
          type: string
          description: The time zone of the user.
          example: example_value
        accountType:
          type: string
          description: The type of account.
          enum:
          - atlassian
          - app
          - customer
          example: atlassian
        avatarUrls:
          $ref: '#/components/schemas/AvatarUrls'
    Project:
      type: object
      description: A Jira project.
      properties:
        self:
          type: string
          format: uri
          description: The URL of the project in the REST API.
          example: https://www.example.com
        id:
          type: string
          description: The ID of the project.
          example: abc123
        key:
          type: string
          description: The key of the project (e.g., PROJ).
          example: example_value
        name:
          type: string
          description: The name of the project.
          example: Example Title
        description:
          type: string
          description: A description of the project.
          example: A sample description.
        lead:
          $ref: '#/components/schemas/UserDetails'
        components:
          type: array
          description: Components in the project.
          items:
            $ref: '#/components/schemas/Component'
          example: []
        issueTypes:
          type: array
          description: Issue types available in the project.
          items:
            $ref: '#/components/schemas/IssueTypeDetails'
          example: []
        url:
          type: string
          format: uri
          description: A URL to the project.
          example: https://www.example.com
        assigneeType:
          type: string
          description: The default assignee type for the project.
          enum:
          - PROJECT_LEAD
          - UNASSIGNED
          example: PROJECT_LEAD
        versions:
          type: array
          description: The versions defined in the project.
          items:
            $ref: '#/components/schemas/Version'
          example: []
        roles:
          type: object
          description: Project role URLs.
          additionalProperties:
            type: string
            format: uri
          example: example_value
        avatarUrls:
          $ref: '#/components/schemas/AvatarUrls'
        projectCategory:
          $ref: '#/components/schemas/ProjectCategory'
        projectTypeKey:
          type: string
          description: The project type.
          enum:
          - software
          - service_desk
          - business
          example: software
        simplified:
          type: boolean
          description: Whether the project is simplified (next-gen/team-managed).
          example: true
        style:
          type: string
          description: The style of the project. Classic or next-gen.
          enum:
          - classic
          - next-gen
          example: classic
        archived:
          type: boolean
          description: Whether the project is archived.
          example: true
        deleted:
          type: boolean
          description: Whether the project is marked as deleted.
          example: true
        insight:
          type: object
          description: Insight information about the project.
          properties:
            totalIssueCount:
              type: integer
              format: int64
            lastIssueUpdateTime:
              type: string
              format: date-time
          example: example_value
    StatusDetails:
      type: object
      description: A status in Jira.
      properties:
        self:
          type: string
          format: uri
          example: https://www.example.com
        id:
          type: string
          example: abc123
        name:
          type: string
          description: The name of the status (e.g., To Do, In Progress, Done).
          example: Example Title
        description:
          type: string
          example: A sample description.
        iconUrl:
          type: string
          format: uri
          example: https://www.example.com
        statusCategory:
          $ref: '#/components/schemas/StatusCategory'
    Scope:
      type: object
      description: The scope of the issue type (project or global).
      properties:
        type:
          type: string
          enum:
          - PROJECT
          - TEMPLATE
          example: PROJECT
        project:
          $ref: '#/components/schemas/ProjectRef'
    Component:
      type: object
      description: A project component.
      properties:
        self:
          type: string
          format: uri
          example: https://www.example.com
        id:
          type: string
          example: abc123
        name:
          type: string
          example: Example Title
        description:
          type: string
          example: A sample description.
        lead:
          $ref: '#/components/schemas/UserDetails'
        assigneeType:
          type: string
          enum:
          - PROJECT_DEFAULT
          - COMPONENT_LEAD
          - PROJECT_LEAD
          - UNASSIGNED
          example: PROJECT_DEFAULT
        assignee:
          $ref: '#/components/schemas/UserDetails'
        project:
          type: string
          example: example_value
        projectId:
          type: integer
          format: int64
          example: '500123'
    ProjectRef:
      type: object
      description: A reference to a Jira project.
      properties:
        self:
          type: string
          format: uri
          example: https://www.example.com
        id:
          type: string
          example: abc123
        key:
          type: string
          example: example_value
        name:
          type: string
          example: Example Title
        avatarUrls:
          $ref: '#/components/schemas/AvatarUrls'
        projectTypeKey:
          type: string
          example: example_value
    AvatarUrls:
      type: object
      description: Avatar URLs in multiple sizes.
      properties:
        16x16:
          type: string
          format: uri
          example: https://www.example.com
        24x24:
          type: string
          format: uri
          example: https://www.example.com
        32x32:
          type: string
          format: uri
          example: https://www.example.com
        48x48:
          type: string
          format: uri
          example: https://www.example.com
  parameters:
    projectIdOrKey:
      name: projectIdOrKey
      in: path
      description: The ID or key of the project (e.g., 10000 or PROJ).
      required: true
      schema:
        type: string
      example: PROJ
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: 'Basic authentication using an Atlassian account email and API token. Format: email:api_token, Base64 encoded. Generate API tokens at https://id.atlassian.com/manage-profile/security/api-tokens.'
    oauth2:
      type: oauth2
      description: OAuth 2.0 authorization code grant (3LO) for Jira Cloud apps.
      flows:
        authorizationCode:
          authorizationUrl: https://auth.atlassian.com/authorize
          tokenUrl: https://auth.atlassian.com/oauth/token
          scopes:
            read:jira-work: Read Jira project and issue data.
            write:jira-work: Create and edit Jira issues and projects.
            manage:jira-project: Manage Jira project settings.
            manage:jira-configuration: Manage Jira instance configuration.
            read:jira-user: Read Jira user information.
    bearerAuth:
      type: http
      scheme: bearer
      description: Bearer token authentication using a personal access token (PAT) or OAuth 2.0 access token.
externalDocs:
  description: Jira Cloud Platform REST API v3 Documentation
  url: https://developer.atlassian.com/cloud/jira/platform/rest/v3/intro/