CONNECT APP
Build with Linear (API key)
Productivity
- API key
MCP
Give your agent Linear (API key) tools
Every Linear (API key) action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Linear (API key) account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "linear_app",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Create Comment:
const result = await mcp.callTool({
name: "linear_app-create-comment",
arguments: {
teamId: "Team",
issueId: "Issue",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "linear_app",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Create Comment:
result = await session.call_tool("linear_app-create-comment", {
"teamId": "Team",
"issueId": "Issue",
})API PROXY
Call the Linear (API key) API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Linear (API key) API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.linear.app/graphql",
})
// Any allowed Linear (API key) endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.linear.app/graphql
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkubGluZWFyLmFwcC9ncmFwaHFs?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Linear (API key) actions from your backend
Connect a user's Linear (API key) account once, then run Create Comment on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "linear_app-create-comment",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
linear_app: { authProvisionId: "apn_xxxxxxx" },
teamId: "Team",
issueId: "Issue",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="linear_app-create-comment",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"linear_app": {"authProvisionId": "apn_xxxxxxx"},
"teamId": "Team",
"issueId": "Issue",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "linear_app-create-comment",
"configured_props": {
"linear_app": { "authProvisionId": "apn_xxxxxxx" },
"teamId": "Team",
"issueId": "Issue"
}
}'TOOLS
Linear (API key) actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Create Comment
actionCreate a comment in Linear. See the documentationWritev0.0.4 -
Create Initiative
actionCreate an initiative in Linear. See the documentationWritev0.0.4 -
Create Issue
actionCreates a new issue in Linear. Requires team ID and title. Optional: description, assignee, project, state. Returns response object with success status and issue details. Uses API Key authentication. See the documentation.Writev0.4.21 -
Create Project
actionCreate a project in Linear. See the documentation.Writev0.0.7 -
Get Issue
actionRetrieves a Linear issue by its ID or identifier. Returns complete issue details including title, description, state, assignee, team, project, labels, and timestamps. Uses API Key authentication. See the documentation.Read-onlyv0.1.21 -
Get Teams
actionRetrieves all teams in your Linear workspace. Returns array of team objects with details like ID, name, and key. Supports pagination with configurable limit. Uses API Key authentication. See Linear docs for additional info here.Read-onlyv0.2.21 -
Get View Issues
actionGet issues from a custom view in Linear. See the documentationRead-onlyv0.0.4 -
List Comments
actionList comments in Linear. See the documentationRead-onlyv0.0.4 -
List Initiatives
actionList initiatives in Linear. See the documentationRead-onlyv0.0.4 -
List Labels
actionList issue labels in Linear. Use this to retrieve label IDs and names for filtering or label-management flows. See the documentation.Read-onlyv0.0.4 -
List Projects
actionList projects in Linear. See the documentation.Read-onlyv0.0.7 -
List Views
actionList views in Linear. See the documentationRead-onlyv0.0.4 -
List Workflow States
actionList workflow states (statuses) in Linear. Returns state IDs, names, types (e.g. backlog, started, completed, cancelled), and team info. Optionally filter by team (use the Get Teams action to discover valid team IDs, e.g.4e80f53c-da9e-4dee-b14e-2cab3e2e8716). See the documentation.Read-onlyv0.0.3 -
Remove Label from Issue
actionRemove a label from an issue in Linear. See the documentationWritev0.0.4 -
Search Issues
actionSearches Linear issues by team, project, assignee, labels, state, or text query. Supports pagination, ordering, and archived issues. Returns array of matching issues. Uses API Key authentication. See Linear docs for additional info here.Read-onlyv0.2.21 -
Update Initiative
actionUpdate an initiative in Linear. See the documentationWritev0.0.4 -
Update Issue
actionUpdates an existing Linear issue. Can modify title, description, assignee, state, project, team, labels, priority, and dates. Returns updated issue details. Uses API Key authentication. See the documentation.Writev0.1.21
EVENTS
Linear (API key) triggers
Event sources your backend can deploy for users and receive through a webhook.
-
Issue Status Updated (Instant)
triggerTriggers instantly when an issue's workflow state changes (e.g., Todo to In Progress). Returns issue with previous and current state info. Can filter by specific target state. See Linear docs for additional info here.Instantv0.1.23 -
Issue Updated (Instant)
triggerTriggers instantly when any issue is updated in Linear. Provides complete issue details with changes. Supports filtering by team and project. Includes all updates except status changes. See Linear docs for additional info here.Instantv0.3.23 -
New Comment Created (Instant)
triggerTriggers instantly when a new comment is added to an issue in Linear. Returns comment details including content, author, issue reference, and timestamps. Supports filtering by team. See Linear docs for additional info here.Instantv0.1.23 -
New Issue Created (Instant)
triggerTriggers instantly when a new issue is created in Linear. Provides complete issue details including title, description, team, assignee, state, and timestamps. Supports filtering by team and project. See Linear docs for additional info here.Instantv0.3.23 -
New Project Update Written (Instant)
triggerTriggers instantly when a project update (status report) is created in Linear. Returns update content, author, project details, and health status. Filters by team and optionally by project. See Linear docs for additional info here.Instantv0.0.15 -
Project Updated (Instant)
triggerTriggers instantly when a project is updated in Linear. Returns project details including name, description, status, dates, and team info. Supports filtering by specific teams. See Linear docs for additional info here.Instantv0.0.16
MULTI-APP
Use Linear (API key) with other popular apps
Most products don't stop at one integration. Pair Linear (API key) with the other apps your users rely on, and ship use cases that span both.
REFERENCE
App details
Reference metadata for the Linear (API key) connector in the Pipedream registry.
- App slug
- linear_app
- Authentication
- API key
- Categories
- Productivity
- Actions
- 17
- Triggers
- 6
- API proxy
- Available