# Jira ## Supported Entities and Actions | Entity | Actions | |--------|---------| | Issues | [Search](#issues-search), [Get](#issues-get) | | Projects | [Search](#projects-search), [Get](#projects-get) | | Users | [Get](#users-get), [List](#users-list), [Search](#users-search) | | Issue Fields | [List](#issue-fields-list), [Search](#issue-fields-search) | | Issue Comments | [List](#issue-comments-list), [Get](#issue-comments-get) | | Issue Worklogs | [List](#issue-worklogs-list), [Get](#issue-worklogs-get) | ### Issues #### Issues Search Retrieve issues based on JQL query with pagination support **Python SDK** ```python jira.issues.search() ``` **API** ```bash curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "issues", "action": "search" }' ``` **Params** | Parameter Name | Type | Required | Description | |----------------|------|----------|-------------| | `jql` | `string` | No | JQL query string to filter issues | | `nextPageToken` | `string` | No | The token for a page to fetch that is not the first page. The first page has a nextPageToken of null. Use the `nextPageToken` to fetch the next page of issues. The `nextPageToken` field is not included in the response for the last page, indicating there is no next page. | | `maxResults` | `integer` | No | The maximum number of items to return per page. To manage page size, API may return fewer items per page where a large number of fields or properties are requested. The greatest number of items returned per page is achieved when requesting `id` or `key` only. It returns max 5000 issues. | | `fields` | `string` | No | A comma-separated list of fields to return for each issue. By default, all navigable fields are returned. To get a list of all fields, use the Get fields operation. | | `expand` | `string` | No | A comma-separated list of parameters to expand. This parameter accepts multiple values, including `renderedFields`, `names`, `schema`, `transitions`, `operations`, `editmeta`, `changelog`, and `versionedRepresentations`. | | `properties` | `string` | No | A comma-separated list of issue property keys. To get a list of all issue property keys, use the Get issue operation. A maximum of 5 properties can be requested. | | `fieldsByKeys` | `boolean` | No | Whether the fields parameter contains field keys (true) or field IDs (false). Default is false. | | `failFast` | `boolean` | No | Fail the request early if all field data cannot be retrieved. Default is false. |
Response Schema **Records** | Field Name | Type | Description | |------------|------|-------------| | `id` | `string` | | | `key` | `string` | | | `self` | `string` | | | `expand` | `string \| null` | | | `fields` | `object` | | **Meta** | Field Name | Type | Description | |------------|------|-------------| | `nextPageToken` | `string \| null` | | | `isLast` | `boolean \| null` | | | `total` | `integer` | |
#### Issues Get Retrieve a single issue by its ID or key **Python SDK** ```python jira.issues.get( issue_id_or_key="" ) ``` **API** ```bash curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "issues", "action": "get", "params": { "issueIdOrKey": "" } }' ``` **Params** | Parameter Name | Type | Required | Description | |----------------|------|----------|-------------| | `issueIdOrKey` | `string` | Yes | The issue ID or key (e.g., "PROJ-123" or "10000") | | `fields` | `string` | No | A comma-separated list of fields to return for the issue. By default, all navigable and Jira default fields are returned. Use it to retrieve a subset of fields. | | `expand` | `string` | No | A comma-separated list of parameters to expand. This parameter accepts multiple values, including `renderedFields`, `names`, `schema`, `transitions`, `operations`, `editmeta`, `changelog`, and `versionedRepresentations`. | | `properties` | `string` | No | A comma-separated list of issue property keys. To get a list of all issue property keys, use the Get issue operation. A maximum of 5 properties can be requested. | | `fieldsByKeys` | `boolean` | No | Whether the fields parameter contains field keys (true) or field IDs (false). Default is false. | | `updateHistory` | `boolean` | No | Whether the action taken is added to the user's Recent history. Default is false. | | `failFast` | `boolean` | No | Fail the request early if all field data cannot be retrieved. Default is false. |
Response Schema **Records** | Field Name | Type | Description | |------------|------|-------------| | `id` | `string` | | | `key` | `string` | | | `self` | `string` | | | `expand` | `string \| null` | | | `fields` | `object` | |
### Projects #### Projects Search Search and filter projects with advanced query parameters **Python SDK** ```python jira.projects.search() ``` **API** ```bash curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "projects", "action": "search" }' ``` **Params** | Parameter Name | Type | Required | Description | |----------------|------|----------|-------------| | `startAt` | `integer` | No | The index of the first item to return in a page of results (page offset) | | `maxResults` | `integer` | No | The maximum number of items to return per page (max 100) | | `orderBy` | `"category" \| "-category" \| "+category" \| "key" \| "-key" \| "+key" \| "name" \| "-name" \| "+name" \| "owner" \| "-owner" \| "+owner" \| "issueCount" \| "-issueCount" \| "+issueCount" \| "lastIssueUpdatedDate" \| "-lastIssueUpdatedDate" \| "+lastIssueUpdatedDate" \| "archivedDate" \| "+archivedDate" \| "-archivedDate" \| "deletedDate" \| "+deletedDate" \| "-deletedDate"` | No | Order the results by a field (prefix with + for ascending, - for descending) | | `id` | `array` | No | Filter by project IDs (up to 50) | | `keys` | `array` | No | Filter by project keys (up to 50) | | `query` | `string` | No | Filter using a literal string (matches project key or name, case insensitive) | | `typeKey` | `string` | No | Filter by project type (comma-separated) | | `categoryId` | `integer` | No | Filter by project category ID | | `action` | `"view" \| "browse" \| "edit" \| "create"` | No | Filter by user permission (view, browse, edit, create) | | `expand` | `string` | No | Comma-separated list of additional fields (description, projectKeys, lead, issueTypes, url, insight) | | `status` | `array<"live" \| "archived" \| "deleted">` | No | EXPERIMENTAL - Filter by project status |
Response Schema **Records** | Field Name | Type | Description | |------------|------|-------------| | `id` | `string` | | | `key` | `string` | | | `name` | `string` | | | `self` | `string` | | | `expand` | `string \| null` | | | `description` | `string \| null` | | | `lead` | `object \| null` | | | `avatarUrls` | `object` | | | `projectTypeKey` | `string` | | | `simplified` | `boolean` | | | `style` | `string` | | | `isPrivate` | `boolean` | | | `properties` | `object` | | | `projectCategory` | `object \| null` | | | `entityId` | `string \| null` | | | `uuid` | `string \| null` | | | `url` | `string \| null` | | | `assigneeType` | `string \| null` | | | `components` | `array \| null` | | | `issueTypes` | `array \| null` | | | `versions` | `array \| null` | | | `roles` | `object \| null` | | **Meta** | Field Name | Type | Description | |------------|------|-------------| | `nextPage` | `string \| null` | | | `total` | `integer` | |
#### Projects Get Retrieve a single project by its ID or key **Python SDK** ```python jira.projects.get( project_id_or_key="" ) ``` **API** ```bash curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "projects", "action": "get", "params": { "projectIdOrKey": "" } }' ``` **Params** | Parameter Name | Type | Required | Description | |----------------|------|----------|-------------| | `projectIdOrKey` | `string` | Yes | The project ID or key (e.g., "PROJ" or "10000") | | `expand` | `string` | No | Comma-separated list of additional fields to include (description, projectKeys, lead, issueTypes, url, insight) | | `properties` | `string` | No | A comma-separated list of project property keys to return. To get a list of all project property keys, use Get project property keys. |
Response Schema **Records** | Field Name | Type | Description | |------------|------|-------------| | `id` | `string` | | | `key` | `string` | | | `name` | `string` | | | `self` | `string` | | | `expand` | `string \| null` | | | `description` | `string \| null` | | | `lead` | `object \| null` | | | `avatarUrls` | `object` | | | `projectTypeKey` | `string` | | | `simplified` | `boolean` | | | `style` | `string` | | | `isPrivate` | `boolean` | | | `properties` | `object` | | | `projectCategory` | `object \| null` | | | `entityId` | `string \| null` | | | `uuid` | `string \| null` | | | `url` | `string \| null` | | | `assigneeType` | `string \| null` | | | `components` | `array \| null` | | | `issueTypes` | `array \| null` | | | `versions` | `array \| null` | | | `roles` | `object \| null` | |
### Users #### Users Get Retrieve a single user by their account ID **Python SDK** ```python jira.users.get( account_id="" ) ``` **API** ```bash curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "users", "action": "get", "params": { "accountId": "" } }' ``` **Params** | Parameter Name | Type | Required | Description | |----------------|------|----------|-------------| | `accountId` | `string` | Yes | The account ID of the user | | `expand` | `string` | No | Comma-separated list of additional fields to include (groups, applicationRoles) |
Response Schema **Records** | Field Name | Type | Description | |------------|------|-------------| | `self` | `string` | | | `accountId` | `string` | | | `accountType` | `string` | | | `emailAddress` | `string \| null` | | | `avatarUrls` | `object` | | | `displayName` | `string` | | | `active` | `boolean` | | | `timeZone` | `string \| null` | | | `locale` | `string \| null` | | | `expand` | `string \| null` | | | `groups` | `object \| null` | | | `applicationRoles` | `object \| null` | |
#### Users List Returns a paginated list of users **Python SDK** ```python jira.users.list() ``` **API** ```bash curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "users", "action": "list" }' ``` **Params** | Parameter Name | Type | Required | Description | |----------------|------|----------|-------------| | `startAt` | `integer` | No | The index of the first item to return in a page of results (page offset) | | `maxResults` | `integer` | No | The maximum number of items to return per page (max 1000) | #### Users Search Search for users using a query string **Python SDK** ```python jira.users.search() ``` **API** ```bash curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "users", "action": "search" }' ``` **Params** | Parameter Name | Type | Required | Description | |----------------|------|----------|-------------| | `query` | `string` | No | A query string to search for users (matches display name, email, account ID) | | `startAt` | `integer` | No | The index of the first item to return in a page of results (page offset) | | `maxResults` | `integer` | No | The maximum number of items to return per page (max 1000) | | `accountId` | `string` | No | Filter by account IDs (supports multiple values) | | `property` | `string` | No | Property key to filter users | ### Issue Fields #### Issue Fields List Returns a list of all custom and system fields **Python SDK** ```python jira.issue_fields.list() ``` **API** ```bash curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "issue_fields", "action": "list" }' ``` #### Issue Fields Search Search and filter issue fields with query parameters **Python SDK** ```python jira.issue_fields.search() ``` **API** ```bash curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "issue_fields", "action": "search" }' ``` **Params** | Parameter Name | Type | Required | Description | |----------------|------|----------|-------------| | `startAt` | `integer` | No | The index of the first item to return in a page of results (page offset) | | `maxResults` | `integer` | No | The maximum number of items to return per page (max 100) | | `type` | `array<"custom" \| "system">` | No | The type of fields to search for (custom, system, or both) | | `id` | `array` | No | List of field IDs to search for | | `query` | `string` | No | String to match against field names, descriptions, and field IDs (case insensitive) | | `orderBy` | `"contextsCount" \| "-contextsCount" \| "+contextsCount" \| "lastUsed" \| "-lastUsed" \| "+lastUsed" \| "name" \| "-name" \| "+name" \| "screensCount" \| "-screensCount" \| "+screensCount"` | No | Order the results by a field (contextsCount, lastUsed, name, screensCount) | | `expand` | `string` | No | Comma-separated list of additional fields to include (searcherKey, screensCount, contextsCount, isLocked, lastUsed) |
Response Schema **Records** | Field Name | Type | Description | |------------|------|-------------| | `maxResults` | `integer` | | | `startAt` | `integer` | | | `total` | `integer` | | | `isLast` | `boolean` | | | `values` | `array` | | | `values[].id` | `string` | | | `values[].key` | `string \| null` | | | `values[].name` | `string` | | | `values[].custom` | `boolean \| null` | | | `values[].orderable` | `boolean \| null` | | | `values[].navigable` | `boolean \| null` | | | `values[].searchable` | `boolean \| null` | | | `values[].clauseNames` | `array \| null` | | | `values[].schema` | `object \| null` | | | `values[].untranslatedName` | `string \| null` | | | `values[].typeDisplayName` | `string \| null` | | | `values[].description` | `string \| null` | | | `values[].searcherKey` | `string \| null` | | | `values[].screensCount` | `integer \| null` | | | `values[].contextsCount` | `integer \| null` | | | `values[].isLocked` | `boolean \| null` | | | `values[].lastUsed` | `string \| null` | | ### Issue Comments #### Issue Comments List Retrieve all comments for a specific issue **Python SDK** ```python jira.issue_comments.list( issue_id_or_key="" ) ``` **API** ```bash curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "issue_comments", "action": "list", "params": { "issueIdOrKey": "" } }' ``` **Params** | Parameter Name | Type | Required | Description | |----------------|------|----------|-------------| | `issueIdOrKey` | `string` | Yes | The issue ID or key (e.g., "PROJ-123" or "10000") | | `startAt` | `integer` | No | The index of the first item to return in a page of results (page offset) | | `maxResults` | `integer` | No | The maximum number of items to return per page | | `orderBy` | `"created" \| "-created" \| "+created"` | No | Order the results by created date (+ for ascending, - for descending) | | `expand` | `string` | No | Comma-separated list of additional fields to include (renderedBody, properties) |
Response Schema **Records** | Field Name | Type | Description | |------------|------|-------------| | `id` | `string` | | | `self` | `string` | | | `body` | `object` | | | `author` | `object` | | | `updateAuthor` | `object` | | | `created` | `string` | | | `updated` | `string` | | | `jsdPublic` | `boolean` | | | `visibility` | `object \| null` | | | `renderedBody` | `string \| null` | | | `properties` | `array \| null` | | **Meta** | Field Name | Type | Description | |------------|------|-------------| | `startAt` | `integer` | | | `maxResults` | `integer` | | | `total` | `integer` | |
#### Issue Comments Get Retrieve a single comment by its ID **Python SDK** ```python jira.issue_comments.get( issue_id_or_key="", comment_id="" ) ``` **API** ```bash curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "issue_comments", "action": "get", "params": { "issueIdOrKey": "", "commentId": "" } }' ``` **Params** | Parameter Name | Type | Required | Description | |----------------|------|----------|-------------| | `issueIdOrKey` | `string` | Yes | The issue ID or key (e.g., "PROJ-123" or "10000") | | `commentId` | `string` | Yes | The comment ID | | `expand` | `string` | No | Comma-separated list of additional fields to include (renderedBody, properties) |
Response Schema **Records** | Field Name | Type | Description | |------------|------|-------------| | `id` | `string` | | | `self` | `string` | | | `body` | `object` | | | `author` | `object` | | | `updateAuthor` | `object` | | | `created` | `string` | | | `updated` | `string` | | | `jsdPublic` | `boolean` | | | `visibility` | `object \| null` | | | `renderedBody` | `string \| null` | | | `properties` | `array \| null` | |
### Issue Worklogs #### Issue Worklogs List Retrieve all worklogs for a specific issue **Python SDK** ```python jira.issue_worklogs.list( issue_id_or_key="" ) ``` **API** ```bash curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "issue_worklogs", "action": "list", "params": { "issueIdOrKey": "" } }' ``` **Params** | Parameter Name | Type | Required | Description | |----------------|------|----------|-------------| | `issueIdOrKey` | `string` | Yes | The issue ID or key (e.g., "PROJ-123" or "10000") | | `startAt` | `integer` | No | The index of the first item to return in a page of results (page offset) | | `maxResults` | `integer` | No | The maximum number of items to return per page | | `expand` | `string` | No | Comma-separated list of additional fields to include (properties) |
Response Schema **Records** | Field Name | Type | Description | |------------|------|-------------| | `id` | `string` | | | `self` | `string` | | | `author` | `object` | | | `updateAuthor` | `object` | | | `comment` | `object` | | | `created` | `string` | | | `updated` | `string` | | | `started` | `string` | | | `timeSpent` | `string` | | | `timeSpentSeconds` | `integer` | | | `issueId` | `string` | | | `visibility` | `object \| null` | | | `properties` | `array \| null` | | **Meta** | Field Name | Type | Description | |------------|------|-------------| | `startAt` | `integer` | | | `maxResults` | `integer` | | | `total` | `integer` | |
#### Issue Worklogs Get Retrieve a single worklog by its ID **Python SDK** ```python jira.issue_worklogs.get( issue_id_or_key="", worklog_id="" ) ``` **API** ```bash curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connector_instance_id}/execute' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "entity": "issue_worklogs", "action": "get", "params": { "issueIdOrKey": "", "worklogId": "" } }' ``` **Params** | Parameter Name | Type | Required | Description | |----------------|------|----------|-------------| | `issueIdOrKey` | `string` | Yes | The issue ID or key (e.g., "PROJ-123" or "10000") | | `worklogId` | `string` | Yes | The worklog ID | | `expand` | `string` | No | Comma-separated list of additional fields to include (properties) |
Response Schema **Records** | Field Name | Type | Description | |------------|------|-------------| | `id` | `string` | | | `self` | `string` | | | `author` | `object` | | | `updateAuthor` | `object` | | | `comment` | `object` | | | `created` | `string` | | | `updated` | `string` | | | `started` | `string` | | | `timeSpent` | `string` | | | `timeSpentSeconds` | `integer` | | | `issueId` | `string` | | | `visibility` | `object \| null` | | | `properties` | `array \| null` | |
## Configuration The connector requires the following configuration variables: | Variable | Type | Required | Default | Description | |----------|------|----------|---------|-------------| | `subdomain` | `string` | Yes | `{subdomain}` | Your Jira Cloud subdomain | These variables are used to construct the base API URL. Pass them via the `config` parameter when initializing the connector. ## Authentication The Jira connector supports the following authentication methods: ### Authentication | Field Name | Type | Required | Description | |------------|------|----------|-------------| | `username` | `str` | Yes | Authentication username | | `password` | `str` | Yes | Authentication password | #### Example **Python SDK** ```python JiraConnector( auth_config=JiraAuthConfig( username="", password="" ) ) ``` **API** ```bash curl --location 'https://api.airbyte.ai/api/v1/connectors/instances' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {your_auth_token}' \ --data '{ "connector_definition_id": "68e63de2-bb83-4c7e-93fa-a8a9051e3993", "auth_config": { "username": "", "password": "" }, "name": "My Jira Connector" }' ```