This is the full reference documentation for the Jira agent connector.
Supported entities and actions
The Jira connector supports the following entities and actions.
| Entity | Actions |
|---|
| Issues | Search, Create, Get, Update, Delete, Context Store Search, Context Store SQL Query |
| Projects | Search, Get, Context Store Search, Context Store SQL Query |
| Users | Get, List, Search, Context Store Search, Context Store SQL Query |
| Issue Fields | List, Search, Context Store Search, Context Store SQL Query |
| Issue Comments | List, Create, Get, Update, Delete, Context Store Search, Context Store SQL Query |
| Issue Worklogs | Get, List, Create, Context Store Search, Context Store SQL Query |
| Issues Assignee | Update |
| Issue Transitions | List, Create |
| Issue Links | Create |
Issues
Issues Search
Retrieve issues based on JQL query with pagination support.
IMPORTANT: This endpoint requires a bounded JQL query. A bounded query must include a search restriction that limits the scope of the search. Examples of valid restrictions include: project (e.g., "project = MYPROJECT"), assignee (e.g., "assignee = currentUser()"), reporter, issue key, sprint, or date-based filters combined with a project restriction. An unbounded query like "order by key desc" will be rejected with a 400 error. Example bounded query: "project = MYPROJECT AND updated >= -7d ORDER BY created DESC".
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issues",
"action": "search"
}'
Python SDK
await jira.issues.search()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issues",
"action": "search"
}'
Parameters
| 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 | |
| Field Name | Type | Description |
|---|
nextPageToken | string | null | |
isLast | boolean | null | |
total | integer | |
Issues Create
Creates an issue or a sub-task from a JSON representation
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issues",
"action": "create",
"params": {
"fields": {
"project": {},
"issuetype": {},
"summary": "<str>"
},
"update": {},
"updateHistory": true
}
}'
Python SDK
await jira.issues.create(
fields={
"project": {},
"issuetype": {},
"summary": "<str>"
},
update={},
update_history=True
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issues",
"action": "create",
"params": {
"fields": {
"project": {},
"issuetype": {},
"summary": "<str>"
},
"update": {},
"updateHistory": True
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fields | object | Yes | The issue fields to set |
fields.project | object | Yes | The project to create the issue in |
fields.project.id | string | No | Project ID |
fields.project.key | string | No | Project key (e.g., 'PROJ') |
fields.issuetype | object | Yes | The type of issue (e.g., Bug, Task, Story) |
fields.issuetype.id | string | No | Issue type ID |
fields.issuetype.name | string | No | Issue type name (e.g., 'Bug', 'Task', 'Story') |
fields.summary | string | Yes | A brief summary of the issue (title) |
fields.description | object | No | Issue description in Atlassian Document Format (ADF) |
fields.description.type | string | No | Document type (always 'doc') |
fields.description.version | integer | No | ADF version |
fields.description.content | array<object> | No | Array of content blocks |
fields.description.content.type | string | No | Block type (e.g., 'paragraph') |
fields.description.content.content | array<object> | No | |
fields.description.content.content.type | string | No | Content type (e.g., 'text') |
fields.description.content.content.text | string | No | Text content |
fields.priority | object | No | Issue priority |
fields.priority.id | string | No | Priority ID |
fields.priority.name | string | No | Priority name (e.g., 'Highest', 'High', 'Medium', 'Low', 'Lowest') |
fields.assignee | object | No | The user to assign the issue to |
fields.assignee.accountId | string | No | The account ID of the user |
fields.labels | array<string> | No | Labels to add to the issue |
fields.parent | object | No | Parent issue for subtasks |
fields.parent.key | string | No | Parent issue key |
update | object | No | Additional update operations to perform |
updateHistory | boolean | No | Whether the action taken is added to the user's Recent history |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
key | string | |
self | string | |
Issues Get
Retrieve a single issue by its ID or key
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issues",
"action": "get",
"params": {
"issueIdOrKey": "<str>"
}
}'
Python SDK
await jira.issues.get(
issue_id_or_key="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issues",
"action": "get",
"params": {
"issueIdOrKey": "<str>"
}
}'
Parameters
| 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 | |
Issues Update
Edits an issue. Issue properties may be updated as part of the edit. Only fields included in the request body are updated.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issues",
"action": "update",
"params": {
"fields": {},
"update": {},
"transition": {},
"issueIdOrKey": "<str>",
"notifyUsers": true,
"overrideScreenSecurity": true,
"overrideEditableFlag": true,
"returnIssue": true,
"expand": "<str>"
}
}'
Python SDK
await jira.issues.update(
fields={},
update={},
transition={},
issue_id_or_key="<str>",
notify_users=True,
override_screen_security=True,
override_editable_flag=True,
return_issue=True,
expand="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issues",
"action": "update",
"params": {
"fields": {},
"update": {},
"transition": {},
"issueIdOrKey": "<str>",
"notifyUsers": True,
"overrideScreenSecurity": True,
"overrideEditableFlag": True,
"returnIssue": True,
"expand": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
fields | object | No | The issue fields to update |
fields.summary | string | No | A brief summary of the issue (title) |
fields.description | object | No | Issue description in Atlassian Document Format (ADF) |
fields.description.type | string | No | Document type (always 'doc') |
fields.description.version | integer | No | ADF version |
fields.description.content | array<object> | No | Array of content blocks |
fields.description.content.type | string | No | Block type (e.g., 'paragraph') |
fields.description.content.content | array<object> | No | |
fields.description.content.content.type | string | No | Content type (e.g., 'text') |
fields.description.content.content.text | string | No | Text content |
fields.priority | object | No | Issue priority |
fields.priority.id | string | No | Priority ID |
fields.priority.name | string | No | Priority name (e.g., 'Highest', 'High', 'Medium', 'Low', 'Lowest') |
fields.assignee | object | No | The user to assign the issue to |
fields.assignee.accountId | string | No | The account ID of the user (use null to unassign) |
fields.labels | array<string> | No | Labels for the issue |
update | object | No | Additional update operations to perform |
transition | object | No | Transition the issue to a new status |
transition.id | string | No | The ID of the transition to perform |
issueIdOrKey | string | Yes | The issue ID or key (e.g., "PROJ-123" or "10000") |
notifyUsers | boolean | No | Whether a notification email about the issue update is sent to all watchers. Default is true. |
overrideScreenSecurity | boolean | No | Whether screen security is overridden to enable hidden fields to be edited. |
overrideEditableFlag | boolean | No | Whether the issue's edit metadata is overridden. |
returnIssue | boolean | No | Whether the updated issue is returned. |
expand | string | No | Expand options when returning the updated issue. |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
key | string | |
self | string | |
expand | string | null | |
fields | object | |
Issues Delete
Deletes an issue. An issue cannot be deleted if it has one or more subtasks unless deleteSubtasks is true.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issues",
"action": "delete",
"params": {
"issueIdOrKey": "<str>"
}
}'
Python SDK
await jira.issues.delete(
issue_id_or_key="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issues",
"action": "delete",
"params": {
"issueIdOrKey": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
issueIdOrKey | string | Yes | The issue ID or key (e.g., "PROJ-123" or "10000") |
deleteSubtasks | boolean | No | Whether to delete the issue's subtasks. Default is false. |
Issues Context Store Search
Search and filter issues records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issues",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"changelog": {}
}
}
}
}
}'
Python SDK
await jira.issues.context_store_search(
query={"filter": {"eq": {"changelog": {}}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issues",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"changelog": {}}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
changelog | object | Details of changelogs associated with the issue |
created | string | The timestamp when the issue was created |
editmeta | object | The metadata for the fields on the issue that can be amended |
expand | string | Expand options that include additional issue details in the response |
fields | object | Details of various fields associated with the issue |
fieldsToInclude | object | Specify the fields to include in the fetched issues data |
id | string | The unique ID of the issue |
key | string | The unique key of the issue |
names | object | The ID and name of each field present on the issue |
operations | object | The operations that can be performed on the issue |
projectId | string | The ID of the project containing the issue |
projectKey | string | The key of the project containing the issue |
properties | object | Details of the issue properties identified in the request |
renderedFields | object | The rendered value of each field present on the issue |
schema | object | The schema describing each field present on the issue |
self | string | The URL of the issue details |
transitions | array | The transitions that can be performed on the issue |
updated | string | The timestamp when the issue was last updated |
versionedRepresentations | object | The versions of each field on the issue |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].changelog | object | Details of changelogs associated with the issue |
data[].created | string | The timestamp when the issue was created |
data[].editmeta | object | The metadata for the fields on the issue that can be amended |
data[].expand | string | Expand options that include additional issue details in the response |
data[].fields | object | Details of various fields associated with the issue |
data[].fieldsToInclude | object | Specify the fields to include in the fetched issues data |
data[].id | string | The unique ID of the issue |
data[].key | string | The unique key of the issue |
data[].names | object | The ID and name of each field present on the issue |
data[].operations | object | The operations that can be performed on the issue |
data[].projectId | string | The ID of the project containing the issue |
data[].projectKey | string | The key of the project containing the issue |
data[].properties | object | Details of the issue properties identified in the request |
data[].renderedFields | object | The rendered value of each field present on the issue |
data[].schema | object | The schema describing each field present on the issue |
data[].self | string | The URL of the issue details |
data[].transitions | array | The transitions that can be performed on the issue |
data[].updated | string | The timestamp when the issue was last updated |
data[].versionedRepresentations | object | The versions of each field on the issue |
Issues Context Store SQL Query
Run a SQL query against issues records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issues",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await jira.issues.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issues",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Projects
Projects Search
Search and filter projects with advanced query parameters
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "projects",
"action": "search"
}'
Python SDK
await jira.projects.search()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "projects",
"action": "search"
}'
Parameters
| 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<integer> | No | Filter by project IDs (up to 50) |
keys | array<string> | 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 | |
| Field Name | Type | Description |
|---|
nextPage | string | null | |
total | integer | |
Projects Get
Retrieve a single project by its ID or key
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "projects",
"action": "get",
"params": {
"projectIdOrKey": "<str>"
}
}'
Python SDK
await jira.projects.get(
project_id_or_key="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "projects",
"action": "get",
"params": {
"projectIdOrKey": "<str>"
}
}'
Parameters
| 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 | |
Projects Context Store Search
Search and filter projects records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "projects",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"archived": true
}
}
}
}
}'
Python SDK
await jira.projects.context_store_search(
query={"filter": {"eq": {"archived": True}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "projects",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"archived": True}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
archived | boolean | Whether the project is archived |
archivedBy | object | The user who archived the project |
archivedDate | string | The date when the project was archived |
assigneeType | string | The default assignee when creating issues for this project |
avatarUrls | object | The URLs of the project's avatars |
components | array | List of the components contained in the project |
deleted | boolean | Whether the project is marked as deleted |
deletedBy | object | The user who marked the project as deleted |
deletedDate | string | The date when the project was marked as deleted |
description | string | A brief description of the project |
email | string | An email address associated with the project |
entityId | string | The unique identifier of the project entity |
expand | string | Expand options that include additional project details in the response |
favourite | boolean | Whether the project is selected as a favorite |
id | string | The ID of the project |
insight | object | Insights about the project |
isPrivate | boolean | Whether the project is private |
issueTypeHierarchy | object | The issue type hierarchy for the project |
issueTypes | array | List of the issue types available in the project |
key | string | The key of the project |
lead | object | The username of the project lead |
name | string | The name of the project |
permissions | object | User permissions on the project |
projectCategory | object | The category the project belongs to |
projectTypeKey | string | The project type of the project |
properties | object | Map of project properties |
retentionTillDate | string | The date when the project is deleted permanently |
roles | object | The name and self URL for each role defined in the project |
self | string | The URL of the project details |
simplified | boolean | Whether the project is simplified |
style | string | The type of the project |
url | string | A link to information about this project |
uuid | string | Unique ID for next-gen projects |
versions | array | The versions defined in the project |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].archived | boolean | Whether the project is archived |
data[].archivedBy | object | The user who archived the project |
data[].archivedDate | string | The date when the project was archived |
data[].assigneeType | string | The default assignee when creating issues for this project |
data[].avatarUrls | object | The URLs of the project's avatars |
data[].components | array | List of the components contained in the project |
data[].deleted | boolean | Whether the project is marked as deleted |
data[].deletedBy | object | The user who marked the project as deleted |
data[].deletedDate | string | The date when the project was marked as deleted |
data[].description | string | A brief description of the project |
data[].email | string | An email address associated with the project |
data[].entityId | string | The unique identifier of the project entity |
data[].expand | string | Expand options that include additional project details in the response |
data[].favourite | boolean | Whether the project is selected as a favorite |
data[].id | string | The ID of the project |
data[].insight | object | Insights about the project |
data[].isPrivate | boolean | Whether the project is private |
data[].issueTypeHierarchy | object | The issue type hierarchy for the project |
data[].issueTypes | array | List of the issue types available in the project |
data[].key | string | The key of the project |
data[].lead | object | The username of the project lead |
data[].name | string | The name of the project |
data[].permissions | object | User permissions on the project |
data[].projectCategory | object | The category the project belongs to |
data[].projectTypeKey | string | The project type of the project |
data[].properties | object | Map of project properties |
data[].retentionTillDate | string | The date when the project is deleted permanently |
data[].roles | object | The name and self URL for each role defined in the project |
data[].self | string | The URL of the project details |
data[].simplified | boolean | Whether the project is simplified |
data[].style | string | The type of the project |
data[].url | string | A link to information about this project |
data[].uuid | string | Unique ID for next-gen projects |
data[].versions | array | The versions defined in the project |
Projects Context Store SQL Query
Run a SQL query against projects records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "projects",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await jira.projects.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "projects",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Users
Users Get
Retrieve a single user by their account ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "users",
"action": "get",
"params": {
"accountId": "<str>"
}
}'
Python SDK
await jira.users.get(
account_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "users",
"action": "get",
"params": {
"accountId": "<str>"
}
}'
Parameters
| 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
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "users",
"action": "list"
}'
Python SDK
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "users",
"action": "list"
}'
Parameters
| 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) |
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 Search
Search for users using a query string
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "users",
"action": "search"
}'
Python SDK
await jira.users.search()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "users",
"action": "search"
}'
Parameters
| 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 |
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 Context Store Search
Search and filter users records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "users",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"accountId": "<str>"
}
}
}
}
}'
Python SDK
await jira.users.context_store_search(
query={"filter": {"eq": {"accountId": "<str>"}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "users",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"accountId": "<str>"}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
accountId | string | The account ID of the user, uniquely identifying the user across all Atlassian products |
accountType | string | The user account type (atlassian, app, or customer) |
active | boolean | Indicates whether the user is active |
applicationRoles | object | The application roles assigned to the user |
avatarUrls | object | The avatars of the user |
displayName | string | The display name of the user |
emailAddress | string | The email address of the user |
expand | string | Options to include additional user details in the response |
groups | object | The groups to which the user belongs |
key | string | Deprecated property |
locale | string | The locale of the user |
name | string | Deprecated property |
self | string | The URL of the user |
timeZone | string | The time zone specified in the user's profile |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].accountId | string | The account ID of the user, uniquely identifying the user across all Atlassian products |
data[].accountType | string | The user account type (atlassian, app, or customer) |
data[].active | boolean | Indicates whether the user is active |
data[].applicationRoles | object | The application roles assigned to the user |
data[].avatarUrls | object | The avatars of the user |
data[].displayName | string | The display name of the user |
data[].emailAddress | string | The email address of the user |
data[].expand | string | Options to include additional user details in the response |
data[].groups | object | The groups to which the user belongs |
data[].key | string | Deprecated property |
data[].locale | string | The locale of the user |
data[].name | string | Deprecated property |
data[].self | string | The URL of the user |
data[].timeZone | string | The time zone specified in the user's profile |
Users Context Store SQL Query
Run a SQL query against users records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "users",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await jira.users.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "users",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Issue Fields
Issue Fields List
Returns a list of all custom and system fields
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_fields",
"action": "list"
}'
Python SDK
await jira.issue_fields.list()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_fields",
"action": "list"
}'
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
key | string | null | |
name | string | |
custom | boolean | null | |
orderable | boolean | null | |
navigable | boolean | null | |
searchable | boolean | null | |
clauseNames | array | null | |
schema | object | null | |
untranslatedName | string | null | |
typeDisplayName | string | null | |
description | string | null | |
searcherKey | string | null | |
screensCount | integer | null | |
contextsCount | integer | null | |
isLocked | boolean | null | |
lastUsed | string | null | |
Issue Fields Search
Search and filter issue fields with query parameters
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_fields",
"action": "search"
}'
Python SDK
await jira.issue_fields.search()
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_fields",
"action": "search"
}'
Parameters
| 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<string> | 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<object> | |
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 Fields Context Store Search
Search and filter issue fields records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_fields",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"clauseNames": []
}
}
}
}
}'
Python SDK
await jira.issue_fields.context_store_search(
query={"filter": {"eq": {"clauseNames": []}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_fields",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"clauseNames": []}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
clauseNames | array | The names that can be used to reference the field in an advanced search |
custom | boolean | Whether the field is a custom field |
id | string | The ID of the field |
key | string | The key of the field |
name | string | The name of the field |
navigable | boolean | Whether the field can be used as a column on the issue navigator |
orderable | boolean | Whether the content of the field can be used to order lists |
schema | object | The data schema for the field |
scope | object | The scope of the field |
searchable | boolean | Whether the content of the field can be searched |
untranslatedName | string | The untranslated name of the field |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].clauseNames | array | The names that can be used to reference the field in an advanced search |
data[].custom | boolean | Whether the field is a custom field |
data[].id | string | The ID of the field |
data[].key | string | The key of the field |
data[].name | string | The name of the field |
data[].navigable | boolean | Whether the field can be used as a column on the issue navigator |
data[].orderable | boolean | Whether the content of the field can be used to order lists |
data[].schema | object | The data schema for the field |
data[].scope | object | The scope of the field |
data[].searchable | boolean | Whether the content of the field can be searched |
data[].untranslatedName | string | The untranslated name of the field |
Issue Fields Context Store SQL Query
Run a SQL query against issue fields records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_fields",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await jira.issue_fields.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_fields",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Retrieve all comments for a specific issue
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_comments",
"action": "list",
"params": {
"issueIdOrKey": "<str>"
}
}'
Python SDK
await jira.issue_comments.list(
issue_id_or_key="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_comments",
"action": "list",
"params": {
"issueIdOrKey": "<str>"
}
}'
Parameters
| 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 | |
| Field Name | Type | Description |
|---|
next_offset | integer | |
max_results | integer | |
total | integer | |
Adds a comment to an issue
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_comments",
"action": "create",
"params": {
"body": {
"type": "<str>",
"version": 0,
"content": []
},
"visibility": {},
"properties": [],
"issueIdOrKey": "<str>",
"expand": "<str>"
}
}'
Python SDK
await jira.issue_comments.create(
body={
"type": "<str>",
"version": 0,
"content": []
},
visibility={},
properties=[],
issue_id_or_key="<str>",
expand="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_comments",
"action": "create",
"params": {
"body": {
"type": "<str>",
"version": 0,
"content": []
},
"visibility": {},
"properties": [],
"issueIdOrKey": "<str>",
"expand": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
body | object | Yes | Comment content in Atlassian Document Format (ADF) |
body.type | string | Yes | Document type (always 'doc') |
body.version | integer | Yes | ADF version |
body.content | array<object> | Yes | Array of content blocks |
body.content.type | string | No | Block type (e.g., 'paragraph') |
body.content.content | array<object> | No | |
body.content.content.type | string | No | Content type (e.g., 'text') |
body.content.content.text | string | No | Text content |
visibility | object | No | Restrict comment visibility to a group or role |
visibility.type | "group" | "role" | No | The type of visibility restriction |
visibility.value | string | No | The name of the group or role |
visibility.identifier | string | No | The ID of the group or role |
properties | array<object> | No | Custom properties for the comment |
issueIdOrKey | string | Yes | The issue ID or key (e.g., "PROJ-123" or "10000") |
expand | string | No | Expand options for the returned comment |
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 | |
Retrieve a single comment by its ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_comments",
"action": "get",
"params": {
"issueIdOrKey": "<str>",
"commentId": "<str>"
}
}'
Python SDK
await jira.issue_comments.get(
issue_id_or_key="<str>",
comment_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_comments",
"action": "get",
"params": {
"issueIdOrKey": "<str>",
"commentId": "<str>"
}
}'
Parameters
| 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 | |
Updates a comment on an issue
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_comments",
"action": "update",
"params": {
"body": {
"type": "<str>",
"version": 0,
"content": []
},
"visibility": {},
"issueIdOrKey": "<str>",
"commentId": "<str>",
"notifyUsers": true,
"expand": "<str>"
}
}'
Python SDK
await jira.issue_comments.update(
body={
"type": "<str>",
"version": 0,
"content": []
},
visibility={},
issue_id_or_key="<str>",
comment_id="<str>",
notify_users=True,
expand="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_comments",
"action": "update",
"params": {
"body": {
"type": "<str>",
"version": 0,
"content": []
},
"visibility": {},
"issueIdOrKey": "<str>",
"commentId": "<str>",
"notifyUsers": True,
"expand": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
body | object | Yes | Updated comment content in Atlassian Document Format (ADF) |
body.type | string | Yes | Document type (always 'doc') |
body.version | integer | Yes | ADF version |
body.content | array<object> | Yes | Array of content blocks |
body.content.type | string | No | Block type (e.g., 'paragraph') |
body.content.content | array<object> | No | |
body.content.content.type | string | No | Content type (e.g., 'text') |
body.content.content.text | string | No | Text content |
visibility | object | No | Restrict comment visibility to a group or role |
visibility.type | "group" | "role" | No | The type of visibility restriction |
visibility.value | string | No | The name of the group or role |
visibility.identifier | string | No | The ID of the group or role |
issueIdOrKey | string | Yes | The issue ID or key (e.g., "PROJ-123" or "10000") |
commentId | string | Yes | The comment ID |
notifyUsers | boolean | No | Whether a notification email about the comment update is sent. Default is true. |
expand | string | No | Expand options for the returned comment |
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 | |
Deletes a comment from an issue
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_comments",
"action": "delete",
"params": {
"issueIdOrKey": "<str>",
"commentId": "<str>"
}
}'
Python SDK
await jira.issue_comments.delete(
issue_id_or_key="<str>",
comment_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_comments",
"action": "delete",
"params": {
"issueIdOrKey": "<str>",
"commentId": "<str>"
}
}'
Parameters
| 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 |
Search and filter issue comments records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_comments",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"author": {}
}
}
}
}
}'
Python SDK
await jira.issue_comments.context_store_search(
query={"filter": {"eq": {"author": {}}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_comments",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"author": {}}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
author | object | The ID of the user who created the comment |
body | object | The comment text in Atlassian Document Format |
created | string | The date and time at which the comment was created |
id | string | The ID of the comment |
issueId | string | Id of the related issue |
jsdPublic | boolean | Whether the comment is visible in Jira Service Desk |
properties | array | A list of comment properties |
renderedBody | string | The rendered version of the comment |
self | string | The URL of the comment |
updateAuthor | object | The ID of the user who updated the comment last |
updated | string | The date and time at which the comment was updated last |
visibility | object | The group or role to which this item is visible |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].author | object | The ID of the user who created the comment |
data[].body | object | The comment text in Atlassian Document Format |
data[].created | string | The date and time at which the comment was created |
data[].id | string | The ID of the comment |
data[].issueId | string | Id of the related issue |
data[].jsdPublic | boolean | Whether the comment is visible in Jira Service Desk |
data[].properties | array | A list of comment properties |
data[].renderedBody | string | The rendered version of the comment |
data[].self | string | The URL of the comment |
data[].updateAuthor | object | The ID of the user who updated the comment last |
data[].updated | string | The date and time at which the comment was updated last |
data[].visibility | object | The group or role to which this item is visible |
Run a SQL query against issue comments records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_comments",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await jira.issue_comments.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_comments",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Issue Worklogs
Issue Worklogs Get
Retrieve a single worklog by its ID
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_worklogs",
"action": "get",
"params": {
"issueIdOrKey": "<str>",
"worklogId": "<str>"
}
}'
Python SDK
await jira.issue_worklogs.get(
issue_id_or_key="<str>",
worklog_id="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_worklogs",
"action": "get",
"params": {
"issueIdOrKey": "<str>",
"worklogId": "<str>"
}
}'
Parameters
| 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 | |
Issue Worklogs List
Retrieve all worklogs for a specific issue
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_worklogs",
"action": "list",
"params": {
"issueIdOrKey": "<str>"
}
}'
Python SDK
await jira.issue_worklogs.list(
issue_id_or_key="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_worklogs",
"action": "list",
"params": {
"issueIdOrKey": "<str>"
}
}'
Parameters
| 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 | |
| Field Name | Type | Description |
|---|
next_offset | integer | |
max_results | integer | |
total | integer | |
Issue Worklogs Create
Adds a worklog entry to an issue to track time spent.
Use timeSpentSeconds or timeSpent (e.g., "3h 30m") to specify time.
Optionally include a started datetime and a comment describing the work done.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_worklogs",
"action": "create",
"params": {
"timeSpentSeconds": 0,
"timeSpent": "<str>",
"started": "2025-01-01T00:00:00Z",
"comment": {},
"visibility": {},
"issueIdOrKey": "<str>",
"notifyUsers": true,
"adjustEstimate": "<str>"
}
}'
Python SDK
await jira.issue_worklogs.create(
time_spent_seconds=0,
time_spent="<str>",
started="2025-01-01T00:00:00Z",
comment={},
visibility={},
issue_id_or_key="<str>",
notify_users=True,
adjust_estimate="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_worklogs",
"action": "create",
"params": {
"timeSpentSeconds": 0,
"timeSpent": "<str>",
"started": "2025-01-01T00:00:00Z",
"comment": {},
"visibility": {},
"issueIdOrKey": "<str>",
"notifyUsers": True,
"adjustEstimate": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
timeSpentSeconds | integer | No | Time spent in seconds (e.g., 3600 for 1 hour). Provide this or timeSpent. |
timeSpent | string | No | Human-readable time spent (e.g., 3h 30m, 1d 2h). Provide this or timeSpentSeconds. |
started | string | No | The datetime when the work was started (ISO 8601 format, e.g., "2024-01-15T09:00:00.000+0000"). Defaults to current time. |
comment | object | No | A comment about the work done in Atlassian Document Format (ADF) |
comment.type | string | No | Document type (always 'doc') |
comment.version | integer | No | ADF version |
comment.content | array<object> | No | Array of content blocks |
comment.content.type | string | No | Block type (e.g., 'paragraph') |
comment.content.content | array<object> | No | |
comment.content.content.type | string | No | Content type (e.g., 'text') |
comment.content.content.text | string | No | Text content |
visibility | object | No | Restrict worklog visibility to a group or role |
visibility.type | "group" | "role" | No | The type of visibility restriction |
visibility.value | string | No | The name of the group or role |
visibility.identifier | string | No | The ID of the group or role |
issueIdOrKey | string | Yes | The issue ID or key (e.g., "PROJ-123" or "10000") |
notifyUsers | boolean | No | Whether to notify users about the worklog. Default is true. |
adjustEstimate | "new" | "leave" | "manual" | "auto" | No | How to adjust the remaining estimate. Values are "new", "leave", "manual", "auto". |
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 | |
Issue Worklogs Context Store Search
Search and filter issue worklogs records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_worklogs",
"action": "context_store_search",
"params": {
"query": {
"filter": {
"eq": {
"author": {}
}
}
}
}
}'
Python SDK
await jira.issue_worklogs.context_store_search(
query={"filter": {"eq": {"author": {}}}}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_worklogs",
"action": "context_store_search",
"params": {
"query": {"filter": {"eq": {"author": {}}}}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
query | object | Yes | Filter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, startswith, endswith, contains, array_contains, fuzzy, keyword, not, and, or |
query.filter | object | No | Filter conditions |
query.sort | array | No | Sort conditions |
limit | integer | No | Maximum results to return (default 1000) |
cursor | string | No | Pagination cursor from previous response's meta.cursor |
fields | array | No | Field paths to include in results |
Searchable Fields
| Field Name | Type | Description |
|---|
author | object | Details of the user who created the worklog |
comment | object | A comment about the worklog in Atlassian Document Format |
created | string | The datetime on which the worklog was created |
id | string | The ID of the worklog record |
issueId | string | The ID of the issue this worklog is for |
properties | array | Details of properties for the worklog |
self | string | The URL of the worklog item |
started | string | The datetime on which the worklog effort was started |
timeSpent | string | The time spent working on the issue as days, hours, or minutes |
timeSpentSeconds | integer | The time in seconds spent working on the issue |
updateAuthor | object | Details of the user who last updated the worklog |
updated | string | The datetime on which the worklog was last updated |
visibility | object | Details about any restrictions in the visibility of the worklog |
Response Schema
| Field Name | Type | Description |
|---|
data | array | List of matching records |
meta | object | Pagination metadata |
meta.has_more | boolean | Whether additional pages are available |
meta.cursor | string | null | Cursor for next page of results |
meta.took_ms | number | null | Query execution time in milliseconds |
data[].author | object | Details of the user who created the worklog |
data[].comment | object | A comment about the worklog in Atlassian Document Format |
data[].created | string | The datetime on which the worklog was created |
data[].id | string | The ID of the worklog record |
data[].issueId | string | The ID of the issue this worklog is for |
data[].properties | array | Details of properties for the worklog |
data[].self | string | The URL of the worklog item |
data[].started | string | The datetime on which the worklog effort was started |
data[].timeSpent | string | The time spent working on the issue as days, hours, or minutes |
data[].timeSpentSeconds | integer | The time in seconds spent working on the issue |
data[].updateAuthor | object | Details of the user who last updated the worklog |
data[].updated | string | The datetime on which the worklog was last updated |
data[].visibility | object | Details about any restrictions in the visibility of the worklog |
Issue Worklogs Context Store SQL Query
Run a SQL query against issue worklogs records in the Airbyte Context Store. SQL projections may return any set of columns, so each result row is a dictionary matching the query's selected fields. Only available in hosted mode.
Use the hosted server documentation to find the qualified Context Store table name and SQL guidance.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_worklogs",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Python SDK
await jira.issue_worklogs.context_store_sql_query(
sql="SELECT * FROM <qualified_context_store_table> LIMIT 100"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_worklogs",
"action": "context_store_sql_query",
"params": {
"sql": "SELECT * FROM <qualified_context_store_table> LIMIT 100"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
sql | string | Yes | SQL query to execute against this entity's Context Store data |
limit | integer | No | Maximum results to return |
Response Schema
| Field Name | Type | Description |
|---|
data | array | Projected rows, with dictionary keys matching the selected columns |
meta | object | Query metadata |
meta.has_more | boolean | Whether the result was limited and more rows are available |
meta.cursor | null | SQL query results do not use cursor pagination |
meta.took_ms | number | null | Query execution time in milliseconds |
Issues Assignee
Issues Assignee Update
Assigns an issue to a user. Use accountId to specify the assignee. Use null to unassign the issue. Use "-1" to set to automatic (project default).
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issues_assignee",
"action": "update",
"params": {
"accountId": "<str>",
"issueIdOrKey": "<str>"
}
}'
Python SDK
await jira.issues_assignee.update(
account_id="<str>",
issue_id_or_key="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issues_assignee",
"action": "update",
"params": {
"accountId": "<str>",
"issueIdOrKey": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
accountId | string | No | The account ID of the user to assign the issue to. Use null to unassign the issue. Use "-1" to set to automatic (project default assignee). |
issueIdOrKey | string | Yes | The issue ID or key (e.g., "PROJ-123" or "10000") |
Issue Transitions
Issue Transitions List
Returns the available transitions for an issue. Transitions define the workflow steps an issue can move through (e.g., To Do -> In Progress -> Done). Use this to discover valid transition IDs before performing a transition.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_transitions",
"action": "list",
"params": {
"issueIdOrKey": "<str>"
}
}'
Python SDK
await jira.issue_transitions.list(
issue_id_or_key="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_transitions",
"action": "list",
"params": {
"issueIdOrKey": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
issueIdOrKey | string | Yes | The issue ID or key (e.g., "PROJ-123" or "10000") |
expand | string | No | Comma-separated list of parameters to expand (transitions.fields) |
transitionId | string | No | Filter by transition ID to get details for a specific transition |
skipRemoteOnlyCondition | boolean | No | Whether to skip conditions that rely on remote data |
includeUnavailableTransitions | boolean | No | Whether to include transitions that are unavailable |
sortByOpsBarAndStatus | boolean | No | Whether to sort transitions by OpsBar and status |
Response Schema
Records
| Field Name | Type | Description |
|---|
id | string | |
name | string | |
to | object | |
hasScreen | boolean | |
isGlobal | boolean | |
isInitial | boolean | |
isConditional | boolean | |
isLooped | boolean | |
Issue Transitions Create
Performs a status transition on an issue (e.g., To Do -> In Progress -> Done).
This is the primary way to change an issue's workflow status in Jira.
To use this endpoint:
- First, GET the available transitions for the issue to find valid transition IDs
- Then POST with the desired transition ID
You can optionally include field updates and comments as part of the transition.
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_transitions",
"action": "create",
"params": {
"transition": {
"id": "<str>"
},
"fields": {},
"update": {},
"historyMetadata": {},
"issueIdOrKey": "<str>"
}
}'
Python SDK
await jira.issue_transitions.create(
transition={
"id": "<str>"
},
fields={},
update={},
history_metadata={},
issue_id_or_key="<str>"
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_transitions",
"action": "create",
"params": {
"transition": {
"id": "<str>"
},
"fields": {},
"update": {},
"historyMetadata": {},
"issueIdOrKey": "<str>"
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
transition | object | Yes | The transition to perform |
transition.id | string | Yes | The ID of the transition to perform. Get available transition IDs from the GET transitions endpoint. |
fields | object | No | Fields to set during the transition (if required by the transition screen) |
update | object | No | Additional update operations to perform during the transition |
historyMetadata | object | No | Metadata about the transition for the issue history |
issueIdOrKey | string | Yes | The issue ID or key (e.g., "PROJ-123" or "10000") |
Issue Links
Issue Links Create
Creates a link between two issues. Issue links define relationships such as
"blocks", "is blocked by", "relates to", "duplicates", "is duplicated by", "clones", "is cloned by".
Common link type names: Blocks, Cloners, Duplicate, Relates.
Each type has an inward and outward description (e.g., "blocks" / "is blocked by").
CLI
airbyte-agent connectors execute --json '{
"workspace": "<your_workspace_name>",
"name": "jira",
"entity": "issue_links",
"action": "create",
"params": {
"type": {},
"inwardIssue": {
"key": "<str>"
},
"outwardIssue": {
"key": "<str>"
},
"comment": {}
}
}'
Python SDK
await jira.issue_links.create(
type={},
inward_issue={
"key": "<str>"
},
outward_issue={
"key": "<str>"
},
comment={}
)
API
curl --location 'https://api.airbyte.ai/api/v1/integrations/connectors/{your_connector_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issue_links",
"action": "create",
"params": {
"type": {},
"inwardIssue": {
"key": "<str>"
},
"outwardIssue": {
"key": "<str>"
},
"comment": {}
}
}'
Parameters
| Parameter Name | Type | Required | Description |
|---|
type | object | Yes | The type of link (e.g., Blocks, Duplicate, Relates) |
type.name | string | No | The name of the link type (e.g., Blocks, Duplicate, Relates, Cloners) |
type.id | string | No | The ID of the link type |
type.inward | string | No | The inward description (e.g., is blocked by) |
type.outward | string | No | The outward description (e.g., blocks) |
inwardIssue | object | Yes | The inward issue (the issue that is affected by the link) |
inwardIssue.key | string | Yes | The issue key (e.g., PROJ-123) |
inwardIssue.id | string | No | The issue ID |
outwardIssue | object | Yes | The outward issue (the issue that causes the link) |
outwardIssue.key | string | Yes | The issue key (e.g., PROJ-456) |
outwardIssue.id | string | No | The issue ID |
comment | object | No | A comment about the link in Atlassian Document Format (ADF) |
comment.body | object | No | |
comment.body.type | string | No | |
comment.body.version | integer | No | |
comment.body.content | array<object> | No | |
comment.body.content.type | string | No | |
comment.body.content.content | array<object> | No | |
comment.body.content.content.type | string | No | |
comment.body.content.content.text | string | No | |