Skip to main content

Linear full reference

This is the full reference documentation for the Linear agent connector.

Supported entities and actions

The Linear connector supports the following entities and actions.

EntityActions
IssuesList, Get, Create, Update
ProjectsList, Get
TeamsList, Get
CommentsList, Get, Create, Update

Issues

Issues List

Returns a paginated list of issues via GraphQL with pagination support

Python SDK

await linear.issues.list()

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issues",
"action": "list"
}'

Parameters

Parameter NameTypeRequiredDescription
firstintegerNoNumber of items to return (max 250)
afterstringNoCursor to start after (for pagination)
Response Schema

Records

Field NameTypeDescription
dataobject

Issues Get

Get a single issue by ID via GraphQL

Python SDK

await linear.issues.get(
id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issues",
"action": "get",
"params": {
"id": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
idstringYesIssue ID
Response Schema

Records

Field NameTypeDescription
dataobject

Issues Create

Create a new issue via GraphQL mutation

Python SDK

await linear.issues.create(
team_id="<str>",
title="<str>",
description="<str>",
state_id="<str>",
priority=0
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issues",
"action": "create",
"params": {
"teamId": "<str>",
"title": "<str>",
"description": "<str>",
"stateId": "<str>",
"priority": 0
}
}'

Parameters

Parameter NameTypeRequiredDescription
teamIdstringYesThe ID of the team to create the issue in
titlestringYesThe title of the issue
descriptionstringNoThe description of the issue (supports markdown)
stateIdstringNoThe ID of the workflow state for the issue
priorityintegerNoThe priority of the issue (0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low)
Response Schema

Records

Field NameTypeDescription
dataobject

Issues Update

Update an existing issue via GraphQL mutation. All fields except id are optional for partial updates.

Python SDK

await linear.issues.update(
id="<str>",
title="<str>",
description="<str>",
state_id="<str>",
priority=0
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "issues",
"action": "update",
"params": {
"id": "<str>",
"title": "<str>",
"description": "<str>",
"stateId": "<str>",
"priority": 0
}
}'

Parameters

Parameter NameTypeRequiredDescription
idstringYesThe ID of the issue to update
titlestringNoThe new title of the issue
descriptionstringNoThe new description of the issue (supports markdown)
stateIdstringNoThe ID of the new workflow state for the issue
priorityintegerNoThe new priority of the issue (0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low)
Response Schema

Records

Field NameTypeDescription
dataobject

Projects

Projects List

Returns a paginated list of projects via GraphQL with pagination support

Python SDK

await linear.projects.list()

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "projects",
"action": "list"
}'

Parameters

Parameter NameTypeRequiredDescription
firstintegerNoNumber of items to return (max 250)
afterstringNoCursor to start after (for pagination)
Response Schema

Records

Field NameTypeDescription
dataobject

Projects Get

Get a single project by ID via GraphQL

Python SDK

await linear.projects.get(
id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "projects",
"action": "get",
"params": {
"id": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
idstringYesProject ID
Response Schema

Records

Field NameTypeDescription
dataobject

Teams

Teams List

Returns a list of teams via GraphQL with pagination support

Python SDK

await linear.teams.list()

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "teams",
"action": "list"
}'

Parameters

Parameter NameTypeRequiredDescription
firstintegerNoNumber of items to return (max 250)
afterstringNoCursor to start after (for pagination)
Response Schema

Records

Field NameTypeDescription
dataobject

Teams Get

Get a single team by ID via GraphQL

Python SDK

await linear.teams.get(
id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "teams",
"action": "get",
"params": {
"id": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
idstringYesTeam ID
Response Schema

Records

Field NameTypeDescription
dataobject

Comments

Comments List

Returns a paginated list of comments for an issue via GraphQL

Python SDK

await linear.comments.list(
issue_id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "comments",
"action": "list",
"params": {
"issueId": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
issueIdstringYesIssue ID to get comments for
firstintegerNoNumber of items to return (max 250)
afterstringNoCursor to start after (for pagination)
Response Schema

Records

Field NameTypeDescription
dataobject

Comments Get

Get a single comment by ID via GraphQL

Python SDK

await linear.comments.get(
id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "comments",
"action": "get",
"params": {
"id": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
idstringYesComment ID
Response Schema

Records

Field NameTypeDescription
dataobject

Comments Create

Create a new comment on an issue via GraphQL mutation

Python SDK

await linear.comments.create(
issue_id="<str>",
body="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "comments",
"action": "create",
"params": {
"issueId": "<str>",
"body": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
issueIdstringYesThe ID of the issue to add the comment to
bodystringYesThe comment content in markdown
Response Schema

Records

Field NameTypeDescription
dataobject

Comments Update

Update an existing comment via GraphQL mutation

Python SDK

await linear.comments.update(
id="<str>",
body="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "comments",
"action": "update",
"params": {
"id": "<str>",
"body": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
idstringYesThe ID of the comment to update
bodystringYesThe new comment content in markdown
Response Schema

Records

Field NameTypeDescription
dataobject

Authentication

The Linear connector supports the following authentication methods.

Linear API Key Authentication

Field NameTypeRequiredDescription
api_keystrYesYour Linear API key from Settings > API > Personal API keys

Example

Python SDK

LinearConnector(
auth_config=LinearAuthConfig(
api_key="<Your Linear API key from Settings > API > Personal API keys>"
)
)

API

curl --location 'https://api.airbyte.ai/api/v1/integrations/sources' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"workspace_id": "{your_workspace_id}",
"source_template_id": "{source_template_id}",
"auth_config": {
"api_key": "<Your Linear API key from Settings > API > Personal API keys>"
},
"name": "My Linear Connector"
}'