Jira
This page contains the setup guide and reference information for the Jira source connector.
Prerequisites
- A Jira Cloud site hostname, for example
airbyteio.atlassian.net - One of the following authentication methods:
- OAuth 2.0 access to Jira
- An Atlassian account email and an Atlassian API token without scopes
- An Atlassian Service Account API token
- Jira permissions for the data you want to sync. To sync all workflow records, the authenticating user needs the Administer Jira global permission. Project-scoped workflows require at least one of the Administer projects and View (read-only) workflow project permissions.
Setup guide
Step 1: Set up Jira
Choose how you want Airbyte to authenticate to Jira.
- To use OAuth 2.0, authorize Airbyte to access your Jira site. If you configure a custom OAuth app, see Atlassian's OAuth 2.0 (3LO) documentation. The connector requests the scopes it needs, including
offline_access,read:workflow:jira, andmanage:jira-configuration. - To use an API token, create an Atlassian API token without scopes by following Atlassian's API token instructions. API token authentication uses HTTP Basic authentication with your Atlassian account email and Jira site hostname.
- To use a Service Account token, create an Atlassian Service Account API token with scopes by following Atlassian's Service Account API token instructions.
Step 2: Set up the Jira connector in Airbyte
For Airbyte Cloud:
- Log into your Airbyte Cloud account.
- Click Sources and then click + New source.
- On the Set up the source page, select Jira from the Source type dropdown.
- Enter a name for the Jira connector.
- Choose an authentication method. To use OAuth 2.0, authenticate your Jira account. To use API token authentication, enter the Email for your Atlassian account and the API Token you created. To use Service Account authentication, enter the Service Account Token.
- Enter the Domain for your Jira site, for example
airbyteio.atlassian.net. Don't includehttps://or a path. - Enter the list of Projects (Optional) to replicate data for, or leave it empty to replicate data for all projects the authenticated user can access.
- Enter the Start Date (Optional) from which you'd like to replicate Jira data in the format
YYYY-MM-DDTHH:MM:SSZ. The connector uses this value only for these streams: Board Issues, Issue Changelogs, Issue Comments, Issue Worklogs, Issues, and Sprint Issues. Other streams always sync all available records.
For Airbyte Open Source:
- Navigate to the Airbyte Open Source dashboard.
- Click Sources and then click + New source.
- On the Set up the source page, select Jira from the Source type dropdown.
- Enter a name for the Jira connector.
- Choose an authentication method. To use API token authentication, enter the Email for your Atlassian account and the API Token you created. To use OAuth 2.0, enter the client ID, client secret, and refresh token from your Atlassian OAuth app. To use Service Account authentication, enter the Service Account Token.
- Enter the Domain for your Jira site, for example
airbyteio.atlassian.net. Don't includehttps://or a path. - Enter the list of Projects (Optional) to replicate data for, or leave it empty to replicate data for all projects the authenticated user can access.
- Enter the Start Date (Optional) from which you'd like to replicate Jira data in the format
YYYY-MM-DDTHH:MM:SSZ. The connector uses this value only for these streams: Board Issues, Issue Changelogs, Issue Comments, Issue Worklogs, Issues, and Sprint Issues. Other streams always sync all available records.
Use Atlassian Service Account API tokens
Atlassian Service Account API tokens must use Atlassian's Platform API Gateway. To use one in Airbyte, set Authentication to Service Account and enter the Domain for your Jira site. The connector resolves the Cloud ID from the domain, routes Jira requests through https://api.atlassian.com/ex/jira/{cloudId}/, and authenticates with a Bearer token.
To create a Service Account API token:
- Go to admin.atlassian.com.
- Go to Directory > Service accounts.
- Create a service account, or choose an existing service account.
- Under Credentials, click Create credential.
- Select API token.
- Set a token name and expiration date. The maximum expiration is 365 days.
- Add the required scopes. You can paste the full comma-separated scope list into scope search to filter the list.
- Select the scopes, click Next, and create the token.
Service Account API tokens use the same Jira OAuth scopes as OAuth 2.0 credentials. Select these scopes when creating the token:
read:jira-work
read:jql:jira
read:group:jira
read:project-role:jira
read:issue-details:jira
read:status:jira
read:jira-user
read:user:jira
read:avatar:jira
read:webhook:jira
read:project-category:jira
read:screenable-field:jira
read:screen-field:jira
offline_access
read:board-scope:jira-software
read:project:jira
read:sprint:jira-software
read:application-role:jira
read:field-configuration:jira
read:notification-scheme:jira
read:issue-security-scheme:jira
read:issue-security-level:jira
read:issue-type-scheme:jira
read:issue-type-screen-scheme:jira
read:permission-scheme:jira
read:screen:jira
read:screen-scheme:jira
read:screen-tab:jira
read:workflow:jira
read:workflow-scheme:jira
read:project.email:jira
read:custom-field-contextual-configuration:jira
manage:jira-configuration
You can paste this comma-separated scope list into Atlassian's scope search:
read:jira-work,read:jql:jira,read:group:jira,read:project-role:jira,read:issue-details:jira,read:status:jira,read:jira-user,read:user:jira,read:avatar:jira,read:webhook:jira,read:project-category:jira,read:screenable-field:jira,read:screen-field:jira,offline_access,read:board-scope:jira-software,read:project:jira,read:sprint:jira-software,read:application-role:jira,read:field-configuration:jira,read:notification-scheme:jira,read:issue-security-scheme:jira,read:issue-security-level:jira,read:issue-type-scheme:jira,read:issue-type-screen-scheme:jira,read:permission-scheme:jira,read:screen:jira,read:screen-scheme:jira,read:screen-tab:jira,read:workflow:jira,read:workflow-scheme:jira,read:project.email:jira,read:custom-field-contextual-configuration:jira,manage:jira-configuration
The service account must also have Jira app access and the project permissions required for the streams you sync. To sync all workflow records, the service account needs the Administer Jira global permission.
Supported sync modes
The Jira source connector supports the following sync modes:
Supported Streams
This connector outputs the following full refresh streams:
- Application roles
- Avatars
- Boards
- Dashboards
- Filters
- Filter sharing
- Groups
- Issue fields
- Issue field configurations
- Issue custom field contexts
- Issue custom field options
- Issue link types
- Issue navigator settings
- Issue notification schemes
- Issue priorities
- Issue properties
- Issue remote links
- Issue resolutions
- Issue security schemes
- Issue transitions
- Issue type schemes
- Issue type screen schemes
- Issue types
- Issue votes
- Issue watchers
- Jira settings
- Labels
- Permissions
- Permission schemes
- Projects
- Project avatars
- Project categories
- Project components
- Project email
- Project permission schemes
- Project roles
- Project types
- Project versions
- Screens
- Screen tabs
- Screen tab fields
- Screen schemes
- Sprints
- Time tracking
- Users
- UsersGroupsDetailed
- Workflows
- Workflow schemes
- Workflow statuses
- Workflow status categories
This connector outputs the following incremental streams:
If there are more endpoints you'd like Airbyte to support, please create an issue.
Workflows stream
The workflows stream uses Jira's GET /rest/api/3/workflows/search endpoint. Jira's deprecated GET /rest/api/3/workflow/search endpoint is scheduled for removal on June 1, 2026, so version 5.0.0 of this connector moved the stream to the replacement endpoint.
If you sync the workflows stream and upgrade from a version earlier than 5.0.0, refresh the source schema and clear the workflows stream before syncing again. For details, see the Jira migration guide.
Streams on I/O Usage
In the list above, a subset of streams makes one HTTP request per issue. These streams can significantly slow down a sync when you have many issues. If you use one or more of these streams and experience slowness, filter the issue list using the Projects configuration field, or remove these streams from the sync.
- Issue comments
- Issue properties
- Issue remote links
- Issue transitions
- Issue votes
- Issue watchers
- Issue worklogs
Entity-Relationship Diagram (ERD)
Troubleshooting
Check out common troubleshooting issues for the Jira connector on our Airbyte Forum here.
Rate Limiting & Performance
The Jira connector should not run into Jira API limitations under normal usage. Please create an issue if you see any rate limit issues that are not automatically retried successfully.
Reference
The connector uses these configuration fields for programmatic setup with PyAirbyte, Terraform, or the Airbyte API:
| Field | Required | Description |
|---|---|---|
credentials.auth_type | Yes | Authentication method. Valid values are API Token, OAuth2.0, and Service Account. |
credentials.email | Required for API token authentication | Atlassian account email used with the API token. |
credentials.api_token | Required for API token authentication | Atlassian API token. Use an API token without scopes. |
credentials.client_id | Required for OAuth 2.0 authentication | Client ID of your Atlassian OAuth app. |
credentials.client_secret | Required for OAuth 2.0 authentication | Client secret of your Atlassian OAuth app. |
credentials.refresh_token | Required for OAuth 2.0 authentication | Refresh token returned by the Atlassian OAuth flow. |
credentials.service_account_token | Required for Service Account authentication | Atlassian Service Account API token with the required Jira scopes. |
domain | Yes | Jira site hostname, for example airbyteio.atlassian.net. Don't include https:// or a path. |
projects | No | List of Jira project keys to replicate. Leave empty to replicate all projects the authenticated user can access. |
start_date | No | UTC date and time in the format YYYY-MM-DDTHH:MM:SSZ. Applies to the Board Issues, Issue Changelogs, Issue Comments, Issue Worklogs, Issues, and Sprint Issues streams. If unset, defaults to two years before the first sync. |
lookback_window_minutes | No | Number of minutes to re-read on each incremental sync. Defaults to 0. |
num_workers | No | Number of concurrent threads to use for the sync. Valid values are 1 through 40. Defaults to 3. |
Reference
Config fields reference
Changelog
Expand to review
| Version | Date | Pull Request | Subject |
|---|---|---|---|
| 5.1.0 | 2026-05-20 | 78130 | Add Service Account authentication support |
| 5.0.0 | 2026-05-20 | 70448 | Migrate the workflows stream from the deprecated /rest/api/3/workflow/search endpoint to its replacement /rest/api/3/workflows/search. Primary key changes from [entityId, name] to [id], and the record schema is updated to match the new endpoint. |
| 4.4.1 | 2026-05-14 | 78088 | Fix domain validation regression: auto-normalize domains with https:// prefix or trailing slashes |
| 4.4.0 | 2026-05-11 | 76067 | Add OAuth 2.0 authentication support with config migration |
| 4.3.21 | 2026-05-05 | 77751 | Add input validation for domain field |
| 4.3.20 | 2026-04-22 | 76354 | Bump SDM base image for deadlock fix |
| 4.3.19 | 2026-04-21 | 76631 | Update dependencies |
| 4.3.18 | 2026-04-13 | 76276 | Rename "concurrent workers" to "concurrent threads" in connector spec |
| 4.3.17 | 2026-03-17 | 75080 | Update dependencies |
| 4.3.16 | 2026-03-10 | 74500 | Update dependencies |
| 4.3.15 | 2026-02-24 | 73898 | Update dependencies |
| 4.3.14 | 2026-02-17 | 73494 | Update dependencies |
| 4.3.13 | 2026-02-10 | 73044 | Update dependencies |
| 4.3.12 | 2026-02-03 | 72758 | Update dependencies |
| 4.3.11 | 2026-01-20 | 71963 | Update dependencies |
| 4.3.10 | 2026-01-14 | 71423 | Update dependencies |
| 4.3.9 | 2025-12-18 | 70533 | Update dependencies |
| 4.3.8 | 2025-11-25 | 70186 | Update dependencies |
| 4.3.7 | 2025-11-18 | 69571 | Update dependencies |
| 4.3.6 | 2025-10-29 | 68818 | Update dependencies |
| 4.3.5 | 2025-10-21 | 68478 | Update dependencies |
| 4.3.4 | 2025-10-14 | 67962 | Update dependencies |
| 4.3.3 | 2025-10-07 | 67375 | Update dependencies |
| 4.3.2 | 2025-09-30 | 66791 | Update dependencies |
| 4.3.1 | 2025-09-09 | 65900 | Update dependencies |
| 4.3.0 | 2025-09-08 | 65917 | Add issue_changelogs stream |
| 4.2.5 | 2025-08-27 | 65565 | Increases maxSecondsBetweenMessages and defaults start_date to 2 years in the past |
| 4.2.4 | 2025-08-23 | 65337 | Update dependencies |
| 4.2.3 | 2025-08-09 | 64583 | Update dependencies |
| 4.2.2 | 2025-08-02 | 64216 | Update dependencies |
| 4.2.1 | 2025-07-26 | 63916 | Update dependencies |
| 4.2.0 | 2025-07-24 | 63761 | Promoting release candidate 4.2.0-rc.1 to a main version. |
| 4.2.0-rc.1 | 2025-07-21 | 63366 | Migrate the issues stream from /search to /search/jql due to API deprecation |
| 4.1.7 | 2025-07-19 | 63461 | Update dependencies |
| 4.1.6 | 2025-07-12 | 63104 | Update dependencies |
| 4.1.5 | 2025-07-05 | 62640 | Update dependencies |
| 4.1.4 | 2025-06-28 | 62186 | Update dependencies |
| 4.1.3 | 2025-06-21 | 61812 | Update dependencies |
| 4.1.2 | 2025-06-14 | 52790 | Update dependencies |
| 4.1.1 | 2025-05-26 | 60908 | Update dependencies |
| 4.1.0 | 2025-05-15 | 60298 | Promoting release candidate 4.1.0-rc.1 to a main version. |
| 4.1.0-rc.1 | 2025-05-12 | 59689 | Migrate to manifest-only format |
| 4.0.0 | 2025-05-07 | 59172 | Remove deprecated pull_requests stream and Python stream code |
| 3.5.4 | 2025-04-16 | 58100 | Fix cdk conflicts & upgrade |
| 3.5.3 | 2025-01-25 | 52291 | Update dependencies |
| 3.5.2 | 2025-01-25 | 52291 | Update dependencies |
| 3.5.1 | 2025-01-24 | 52134 | Fix low-code state migration |
| 3.5.0 | 2025-01-23 | 52105 | Update incremental per partition streams to use concurrency |
| 3.4.8 | 2025-01-11 | 51189 | Update dependencies |
| 3.4.7 | 2025-01-04 | 50886 | Update dependencies |
| 3.4.6 | 2024-12-28 | 50625 | Update dependencies |
| 3.4.5 | 2024-12-21 | 50108 | Update dependencies |
| 3.4.4 | 2024-12-14 | 49224 | Starting with this version, the Docker image is now rootless. Please note that this and future versions will not be compatible with Airbyte versions earlier than 0.64 |
| 3.4.3 | 2024-12-12 | 47087 | Update dependencies |
| 3.4.2 | 2024-12-09 | 48838 | Fixing timezone gaps with state |
| 3.4.1 | 2024-12-09 | 48859 | Add a couple of fixes regarding memory usage |
| 3.4.0 | 2024-12-05 | 48738 | Enable concurrency for substreams without cursor |
| 3.3.1 | 2024-11-18 | 48539 | Update dependencies |
| 3.3.0-rc.3 | 2024-11-14 | 48395 | Change JQL filters comparing cursor values to use milliseconds since unix epoch so that data isn't skipped when the active timezone is a negative UTC offset |
| 3.3.0-rc.2 | 2024-11-08 | 38612 | Add substream state migration. Update CDK to v6. |
| 3.3.0-rc.1 | 2024-10-28 | 38612 | Migrate IssueComments and IssueWorklogs streams to low-code (This change is irreversible) |
| 3.2.1 | 2024-10-12 | 44650 | Update dependencies |
| 3.2.0 | 2024-10-10 | 46344 | Update CDK v5 |
| 3.1.1 | 2024-08-17 | 44251 | Update dependencies |
| 3.1.0 | 2024-08-13 | 39558 | Ensure config_error when state has improper format |
| 3.0.14 | 2024-08-12 | 43885 | Update dependencies |
| 3.0.13 | 2024-08-10 | 43542 | Update dependencies |
| 3.0.12 | 2024-08-03 | 43196 | Update dependencies |
| 3.0.11 | 2024-07-27 | 42802 | Update dependencies |
| 3.0.10 | 2024-07-20 | 42231 | Update dependencies |
| 3.0.9 | 2024-07-13 | 41842 | Update dependencies |
| 3.0.8 | 2024-07-10 | 41453 | Update dependencies |
| 3.0.7 | 2024-07-09 | 41175 | Update dependencies |
| 3.0.6 | 2024-07-06 | 40785 | Update dependencies |
| 3.0.5 | 2024-06-27 | 40215 | Replaced deprecated AirbyteLogger with logging.Logger |
| 3.0.4 | 2024-06-26 | 40549 | Migrate off deprecated auth package |
| 3.0.3 | 2024-06-25 | 40444 | Update dependencies |
| 3.0.2 | 2024-06-21 | 40121 | Update dependencies |
| 3.0.1 | 2024-06-13 | 39458 | Fix skipping custom_field_options entities when schema.items is options |
| 3.0.0 | 2024-06-14 | 39467 | Update pk for Workflows stream from Id(object) to entityId, name(string, string) |
| 2.0.3 | 2024-06-10 | 39347 | Update state handling for incremental Python streams |
| 2.0.2 | 2024-06-06 | 39310 | Fix projects substreams for deleted projects |
| 2.0.1 | 2024-05-20 | 38341 | Update CDK authenticator package |
| 2.0.0 | 2024-04-20 | 37374 | Migrate to low-code and fix Project Avatars stream |
| 1.2.2 | 2024-04-19 | 36646 | Updating to 0.80.0 CDK |
| 1.2.1 | 2024-04-12 | 36646 | schema descriptions |
| 1.2.0 | 2024-03-19 | 36267 | Pin airbyte-cdk version to ^0 |
| 1.1.0 | 2024-02-27 | 35656 | Add new fields to streams board_issues, filter_sharing, filters, issues, permission_schemes, sprint_issues, users_groups_detailed, and workflows |
| 1.0.2 | 2024-02-12 | 35160 | Manage dependencies with Poetry. |
| 1.0.1 | 2024-01-24 | 34470 | Add state checkpoint interval for all streams |
| 1.0.0 | 2024-01-01 | 33715 | Save state for stream Board Issues per board |
| 0.14.1 | 2023-12-19 | 33625 | Skip 404 error |
| 0.14.0 | 2023-12-15 | 33532 | Add lookback window |
| 0.13.0 | 2023-12-12 | 33353 | Fix check command to check access for all available streams |
| 0.12.0 | 2023-12-01 | 33011 | Fix BoardIssues stream; increase number of retries for backoff policy to 10 |
| 0.11.0 | 2023-11-29 | 32927 | Fix incremental syncs for stream Issues |
| 0.10.2 | 2023-10-26 | 31896 | Provide better guidance when configuring the connector with an invalid domain |
| 0.10.1 | 2023-10-23 | 31702 | Base image migration: remove Dockerfile and use the python-connector-base image |
| 0.10.0 | 2023-10-13 | #31385 | Fixed aggregatetimeoriginalestimate, timeoriginalestimate field types for the Issues stream schema |
| 0.9.0 | 2023-09-26 | #30688 | Added createdDate field to sprints schema, Removed Expand Issues stream from spec |
| 0.8.0 | 2023-09-26 | #30755 | Add new streams: Issue custom field options, IssueTypes, Project Roles |
| 0.7.2 | 2023-09-19 | #30675 | Ensure invalid URL does not trigger Sentry alert |
| 0.7.1 | 2023-09-19 | #30585 | Add skip for 404 error in issue properties steam |
| 0.7.0 | 2023-09-17 | #30532 | Add foreign key to stream record where it missing |
| 0.6.3 | 2023-09-19 | #30515 | Add transform for invalid date-time format, add 404 handling for check |
| 0.6.2 | 2023-09-19 | #30578 | Fetch deleted and archived Projects |
| 0.6.1 | 2023-09-17 | #30550 | Update Issues expand settings |
| 0.6.0 | 2023-09-17 | #30507 | Add new stream IssueTransitions |
| 0.5.0 | 2023-09-14 | #29960 | Add boardId to sprints stream |
| 0.3.14 | 2023-09-11 | #30297 | Remove requests and pendulum from setup dependencies |
| 0.3.13 | 2023-09-01 | #30108 | Skip 404 error for stream IssueWatchers |
| 0.3.12 | 2023-06-01 | #26652 | Expand on leads for projects stream |
| 0.3.11 | 2023-06-01 | #26906 | Handle project permissions error |
| 0.3.10 | 2023-05-26 | #26652 | Fixed bug when board doesn't support sprints |
| 0.3.9 | 2023-05-16 | #26114 | Update fields info in docs and spec, update to latest airbyte-cdk |
| 0.3.8 | 2023-05-04 | #25798 | Add sprint info to sprint_issues and sprints streams for team-managed projects |
| 0.3.7 | 2023-04-18 | #25275 | Add missing types to issues json schema |
| 0.3.6 | 2023-04-10 | #24636 | Removed Connector Domain Pattern from Spec |
| 0.3.5 | 2023-04-05 | #24890 | Fix streams "IssuePropertyKeys", "ScreenTabFields" |
| 0.3.4 | 2023-02-14 | #23006 | Remove caching for Issues stream |
| 0.3.3 | 2023-01-04 | #20739 | fix: check_connection fails if no projects are defined |
| 0.3.2 | 2022-12-23 | #20859 | Fixed pagination for streams issue_remote_links, sprints |
| 0.3.1 | 2022-12-14 | #20128 | Improved code to become beta |
| 0.3.0 | 2022-11-03 | #18901 | Adds UserGroupsDetailed schema, fix Incremental normalization, add Incremental support for IssueComments, IssueWorklogs |
| 0.2.23 | 2022-10-28 | #18505 | Correcting max_results bug introduced in connector stream |
| 0.2.22 | 2022-10-03 | #16944 | Adds support for max_results to users stream |
| 0.2.21 | 2022-07-28 | #15135 | Adds components to fields object on issues stream |
| 0.2.20 | 2022-05-25 | #13202 | Adds resolutiondate to fields object on issues stream |
| 0.2.19 | 2022-05-04 | #10835 | Change description for array fields |
| 0.2.18 | 2021-12-23 | #7378 | Adds experimental endpoint Pull Request |
| 0.2.17 | 2021-12-23 | #9079 | Update schema for filters stream + fix fetching filters stream |
| 0.2.16 | 2021-12-21 | #8999 | Update connector fields title/description |
| 0.2.15 | 2021-11-01 | #7398 | Add option to render fields in HTML format and fix sprint_issue ids |
| 0.2.14 | 2021-10-27 | #7408 | Fix normalization step error. Fix schemas. Fix acceptance-test-config.yml. Fix streams.py. |
| 0.2.13 | 2021-10-20 | #7222 | Source Jira: Make recently added configs optional for backwards compatibility |
| 0.2.12 | 2021-10-19 | #6621 | Add Board, Epic, and Sprint streams |
| 0.2.11 | 2021-09-02 | #6523 | Add cache and more streams (boards and sprints) |
| 0.2.9 | 2021-07-28 | #5426 | Changed cursor field from fields.created to fields.updated for Issues stream. Made Issues worklogs stream full refresh. |
| 0.2.8 | 2021-07-28 | #4947 | Source Jira: fixing schemas accordingly to response. |
| 0.2.7 | 2021-07-19 | #4817 | Fixed labels schema properties issue. |
| 0.2.6 | 2021-06-15 | #4113 | Fixed user stream with the correct endpoint and query param. |
| 0.2.5 | 2021-06-09 | #3973 | Added AIRBYTE_ENTRYPOINT in base Docker image for Kubernetes support. |
| 0.2.4 | Implementing base_read acceptance test dived by stream groups. | ||
| 0.2.3 | Implementing incremental sync. Migrated to airbyte-cdk. Adding all available entities in Jira Cloud. |